2010-02-11 5 views

Répondre

37
System.IO.Directory myDir = GetMyDirectoryForTheExample(); 
int count = myDir.GetFiles().Length; 
84

Vous pouvez utiliser la méthode Directory.GetFiles

Voir aussi Directory.GetFiles Method (String, String, SearchOption)

Vous pouvez spécifier l'option de recherche dans cette surcharge.

TopDirectoryOnly: Inclut uniquement le répertoire actuel dans une recherche.

AllDirectories: inclut le répertoire actuel et tous les sous-répertoires d'une opération de recherche. Cette option inclut des points d'analyse comme des lecteurs montés et des liens symboliques dans la recherche.

// searches the current directory and sub directory 
int fCount = Directory.GetFiles(path, "*", SearchOption.AllDirectories).Length; 
// searches the current directory 
int fCount = Directory.GetFiles(path, "*", SearchOption.TopDirectoryOnly).Length; 
+0

Puis-je suggérer d'utiliser "*" pour faire correspondre les fichiers, sinon les fichiers sans extensions ne seront pas inclus dans le nombre. –

17

La méthode slickest woud à utiliser LINQ:

var fileCount = (from file in Directory.EnumerateFiles(@"H:\iPod_Control\Music", "*.mp3", SearchOption.AllDirectories) 
         select file).Count(); 
+4

Vous pouvez simplement écrire: var fileCount = Répertoire.EnumerateFiles (@ "H: \ iPod_Control \ Music", "* .mp3", SearchOption.AllDirectories) .Count(); – AndrewS

8
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("SourcePath"); 
int count = dir.GetFiles().Length; 

Vous pouvez l'utiliser.

3

lecture des fichiers PDF à partir d'un répertoire:

var list = Directory.GetFiles(@"C:\ScanPDF", "*.pdf"); 
if (list.Length > 0) 
{ 

} 
-1

Pour obtenir le nombre de certaines extensions de type utilisant LINQ vous pouvez utiliser ce code simple:

Dim exts() As String = {".docx", ".ppt", ".pdf"} 

Dim query = (From f As FileInfo In directory.GetFiles()).Where(Function(f) exts.Contains(f.Extension.ToLower())) 

Response.Write(query.Count()) 
0

Essayez le code suivant pour obtenir le nombre de fichiers dans le dossier

string strDocPath = Server.MapPath('Enter your path here'); 
    int docCount = Directory.GetFiles(strDocPath, "*", 
    SearchOption.TopDirectoryOnly).Length; 

Questions connexes