J'utilise VSTS 2008 + C# + .Net 3.0. Je veux énumérer tous les fichiers dans un répertoire en fonction du temps de création, c'est-à-dire que les fichiers créés plus récemment seront enumerate au début, les fichiers les plus anciens seront enfin énumérés. Des idées pour implémenter cela?Fichier liste C# dans le répertoire
Répondre
Quelque chose comme ça
System.IO.FileInfo[] array = new System.IO.DirectoryInfo("directory_path").GetFiles();
Array.Sort(array, delegate(System.IO.FileInfo f1, System.IO.FileInfo f2)
{
return f2.CreationTimeUtc.CompareTo(f1.CreationTimeUtc);
});
Je probablement utiliser LINQ et une liste ... quelque chose comme cela devrait fonctionner:
DirectoryInfo di = new DirectoryInfo("YourPath");
List<FileInfo> files = di.GetFiles().OrderBy(f => f.CreationTime).ToList();
foreach (FileInfo file in files)
{
//do something
}
Désolé j'utilise .Net 3.0, ne peut pas utiliser LINQ. Toute solution basée sur .Net 3.0? – George2
Essayez somithing comme ceci:
DirectoryInfo di = new DirectoryInfo("path to folder");
FileInfo[] files = di.GetFiles();
IOrderedEnumerable<FileInfo> enumerable = files.OrderBy(f => f.CreationTime);
foreach (FileInfo info in enumerable)
{
// do stuff...
}
Désolé, j'utilise .Net 3.0, je ne peux pas utiliser LINQ. Toute solution basée sur .Net 3.0? – George2
DirectoryInfo baseFolder=new DirectoryInfo("folderName");
FileInfo[] files=baseFolder.GetFiles("");
for(int i=1; i<=files.Length;i++)
for(int j=1; j<files.Length;j++)
{
if(files[j].CreationTime > files[j+1].CreationTime)
{
FileInfo f = files[j];
files[j] = files[j+1];
files[j+1] = f;
}
}
Je ne vois pas l'intérêt de tout réécrire car le framework a beaucoup de choses à commander pour des collections! –
MODIFIER: mise à jour, voici une solution non-LINQ
FileInfo[] files = new DirectoryInfo("directory").GetFiles();
Array.Sort(files, delegate(FileInfo f1, FileInfo f2) {
return f2.CreationTime.CompareTo(f1.CreationTime);
});
ci-dessus triera par le dernier au plus ancien. Pour trier le plus ancien au dernier changement du délégué: return f1.CreationTime.CompareTo(f2.CreationTime);
solution LINQ:
FileInfo[] files = new DirectoryInfo("directory").GetFiles();
var results = files.OrderByDescending(file => file.CreationTime);
Utilisez OrderByDescending pour trier par le plus récent CreationTime, sinon utiliser OrderBy pour trier du plus ancien au plus récent CreationTime.
Ajout d'une solution non-LINQ basée sur votre commentaire à une autre réponse –
- 1. Fichier ou répertoire verrouillé dans C
- 2. Ouvrir le fichier dans un autre répertoire en C
- 3. phpmyadmin - liste les fichiers dans le répertoire
- 4. Autorisations de fichier/répertoire C#
- 5. Fichier de liste dans C (.LST)
- 6. fichier et de répertoire avec le même nom dans le même répertoire parent - Solaris 8, UFS
- 7. Définir le répertoire intermédiaire dans C# Projet
- 8. Comment écraser le fichier enregistré dans le répertoire contextuel
- 9. php curl laisser le fichier dans le répertoire - Comment nettoyer
- 10. Trouver le fichier le plus ancien (récursivement) dans un répertoire
- 11. Java - obtient le fichier le plus récent dans un répertoire?
- 12. Rediriger si le fichier existe dans le sous-répertoire
- 13. Liste de tous les dossiers dans le répertoire
- 14. SFTP liste répertoire
- 15. Comment enregistrer le fichier dans un répertoire local
- 16. fichier de recherche dans le répertoire en utilisant modèle complexe
- 17. C# - Incrémenter une liste de services web dans un répertoire et une liste disponibles Webmethods
- 18. C++ « c1083 d'erreur fatale: Impossible d'ouvrir le fichier à inclure: « blabla »: Aucun fichier ou répertoire » uniquement dans la version Créer
- 19. Ant fichier de copie dans le répertoire de la feuille
- 20. Répertoire actuel dans le fichier de propriétés Java
- 21. CD vers répertoire, où le chemin est dans un fichier
- 22. Python, trouver un fichier dans le même répertoire
- 23. Rechercher un fichier dans le répertoire avec plusieurs répertoires
- 24. Fichier de configuration IIS dans le répertoire virtuel
- 25. ClearCase: liste le contenu d'un répertoire (ls) en utilisant CAL
- 26. Rechercher dans le répertoire Apache
- 27. Comment lister les fichiers texte dans le répertoire sélectionné dans une liste?
- 28. Obtenir le répertoire d'un nom de fichier en Javascript
- 29. Nombre d'arguments dans le fichier C++
- 30. C++ Lire le fichier dans hash_map
Vous ne devez pas annuler l'ordre d'avoir d'abord des fichiers plus récents comme demandé? –
Cédric, vous avez raison. Merci. –
Deuxième point: avec VS2008, vous pouvez utiliser lambdas, même en 2.0 ou 3.0! Facilite la lecture ... mais vous ne pouvez les utiliser que si votre processus de construction utilise MsBuild 3.5 (attention au serveur CI par exemple ...) –