0
Je crée une visionneuse d'image simple, mais je veux faire un tri des images par LastTimeWrite. J'ai un OpenFileDialog pour charger des photos, quand je choisis l'image dans le dossier alors ProcessDirectory() est appelé.trier les images par LastTimeWrite
private void ProcessDirectory()
{
FileTypes = new ArrayList();
FileTypes.Add("*.JPG");
FileTypes.Add("*.JPEG");
FileTypes.Add("*.GIF");
FileTypes.Add("*.BMP");
FileTypes.Add("*.PNG");
FileTypes.Add("*.TIF");
FileTypes.Add("*.TIFF");
string[] szFiles;
FileArray = new ArrayList();
foreach (string szType in FileTypes)
{
szFiles = Directory.GetFiles(Directory.GetCurrentDirectory(), szType);
if (szFiles.Length > 0)
FileArray.AddRange(szFiles);
//switch (SortImg)
//{
// case ("Asc"):
// FileArray.Sort();
// break;
// case("Date"):
string[] MyString = new string[szFiles.Length];
DateTime[] creationTimes = new DateTime[szFiles.Length];
for (int i = 0; i < szFiles.Length; i++)
{
creationTimes[i] = new FileInfo(szFiles[i]).LastWriteTime;
//creationTimes[i].ToString("yyyy-MM-dd HH:mm tt");
}
for (int i = 0; i < szFiles.Length; i++)
MyString[i] = Convert.ToString(creationTimes[i].ToString("yyyy-MM-dd HH:mm tt"));
FileArray.Sort();
listBox1.Items.AddRange(MyString);
FileArray.AddRange(MyString);
...
}
Merci beaucoup pour votre réponse, Fredrik. Vos exemples fonctionnent très bien, mais je ne vois pas comment montrer des images triées, je ne peux montrer que leurs dates FielInfo en format de chaîne. Je pense qu'il devrait y avoir un autre tableau pour les fichiers triés qui seront affichés dans pictureBox, mais comment remplir ce nouveau tableau avec votre tableau 'fichiers' rempli de FileInfos triés. Je suis trop stupide pour ça. Avez-vous une idée? Je vous remercie. –
Si vous souhaitez afficher les images à la place, vous pouvez utiliser la méthode 'FromFile' sur la classe' Image' pour charger le fichier, puis affecter l'image à la propriété 'Image' d'un objet' PictureBox'. Vous aurez bien sûr besoin d'un PictureBox pour chaque image. –