J'ai une structure de chemin qui ressemble à ceci:Comment compter le nombre de fichiers dans un sous-dossier avec un nom spécifique en utilisant C#?
Main_Folder
***Sub_Folder1***
**1) FOLDER_Y**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
FolderN
picture1.png
picture2.png
picturen.png
**2) FOLDER_X**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
**3) FOLDER_Z**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
***Sub_Folder2***
**1) FOLDER_Y**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
FolderN
picture1.png
picture2.png
picturen.png
**2) FOLDER_X**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
**3) FOLDER_Z**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
***Sub_Folder3***
**1) FOLDER_Y**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
FolderN
picture1.png
picture2.png
picturen.png
**2) FOLDER_X**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
**3) FOLDER_Z**
Folder1
picture1.png
picture2.png
picturen.png
Folder2
picture1.png
picture2.png
picturen.png
> Desired mock output: > FOLDER_Y # files: 27 > FOLDER_X # files: 18 > FOLDER_Z # files: 18
Je veux essentiellement l'utilisateur d'entrer un chemin vers le dossier principal , puis itérer à travers chaque sub_folder. Ensuite, affichez le nombre total de fichiers dans TOUS les dossiers de tous les sous-dossiers. Et la même chose pour Folder_X, Folder_Z.
J'ai essayé plusieurs méthodes sans succès.
public void getFOLDER_Y(string strPath)
{
string partialName = "FOLDER_Y";
DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(strPath);
FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*");
DirectoryInfo[] dirsInDir = hdDirectoryInWhichToSearch.GetDirectories("*" + partialName + "*.*");
foreach (FileInfo foundFile in filesInDir)
{
string fullName = foundFile.FullName;
richtxt_results.Text += fullName + "\n";
}
foreach (DirectoryInfo foundDir in dirsInDir)
{
string fullName = foundDir.FullName;
richtxt_results.Text += fullName + "\n";
}
}
** Note ** - vous devez utiliser EnumerateFiles ** ** lorsqu'ils traitent avec un grand nombre de fichiers en particulier avec les dossiers de l'enfant, car il renvoie un ** IEnumerable <> ** au lieu d'un tableau. – MickyD
Je ne le savais pas et me semble être une information utile à connaître. Merci! – Sach
Vous êtes le bienvenu bon monsieur :) – MickyD