Trouver tous les fichiers dans un dossier

Je cherche à créer un programme qui trouve tous les fichiers d’un certain type sur mon bureau et les place dans des dossiers spécifiques, par exemple, j’aurais tous les fichiers avec .txt dans le dossier Texte.

Des idées quelle serait la meilleure façon d’y parvenir? Merci.

J’ai essayé ceci:

ssortingng startPath = @"%userprofile%/Desktop"; ssortingng[] oDirectories = Directory.GetDirectories(startPath, ""); Console.WriteLine(oDirectories.Length.ToSsortingng()); foreach (ssortingng oCurrent in oDirectories) Console.WriteLine(oCurrent); Console.ReadLine(); 

Il n’a pas réussi à trouver tous les fichiers.

Beaucoup de ces réponses ne fonctionneront pas vraiment, après les avoir essayées moi-même. Essayez ceci:

 ssortingng filepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); DirectoryInfo d = new DirectoryInfo(filepath); foreach (var file in d.GetFiles("*.txt")) { Directory.Move(file.FullName, filepath + "\\TextFiles\\" + file.Name); } 

Il déplacera tous les fichiers .txt du bureau vers le dossier TextFiles .

Tout d’abord; meilleure pratique serait d’obtenir le dossier de bureau des utilisateurs avec

 ssortingng path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 

Ensuite, vous pouvez trouver tous les fichiers avec quelque chose comme

 ssortingng[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories); 

Notez qu’avec la ligne ci-dessus, vous trouverez tous les fichiers avec une extension .txt dans le dossier Desktop de l’utilisateur connecté ET de tous les sous-dossiers.

Ensuite, vous pouvez copier ou déplacer les fichiers en énumérant la collection ci-dessus comme

 // For copying... foreach (ssortingng s in files) { File.Copy(s, "C:\newFolder\newFilename.txt"); } // ... Or for moving foreach (ssortingng s in files) { File.Move(s, "C:\newFolder\newFilename.txt"); } 

Veuillez noter que vous devrez inclure le nom de fichier dans votre opération Copy() (ou Move() ). Donc, vous devriez trouver un moyen de déterminer le nom de fichier d’au moins l’extension que vous traitez et de ne pas nommer tous les fichiers de la même manière que dans l’exemple ci-dessus.

Dans cette optique, vous pouvez également consulter les classes DirectoryInfo et FileInfo . Celles-ci fonctionnent de la même manière, mais vous pouvez obtenir plus facilement des informations sur vos noms de fichiers / chemins, vos extensions, etc.

Découvrez ces pour plus d’informations:

http://msdn.microsoft.com/en-us/library/system.io.directory.aspx

http://msdn.microsoft.com/en-us/library/ms143316.aspx

http://msdn.microsoft.com/en-us/library/system.io.file.aspx

Vous pouvez essayer avec Directory.GetFiles et corriger votre modèle

  ssortingng[] files = Directory.GetFiles(@"c:\", "*.txt"); foreach (ssortingng file in files) { File.Copy(file, "...."); } Or Move foreach (ssortingng file in files) { File.Move(file, "...."); } 

http://msdn.microsoft.com/en-us/library/wz42302f