2010-02-11 19 views

Odpowiedz

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

Można użyć metody

Directory.GetFiles także zobaczyć Directory.GetFiles Method (String, String, SearchOption)

Możesz określić opcję Wyszukaj w tej przeciążenia.

TopDirectoryOnly: Obejmuje tylko bieżący katalog w wyszukiwaniu.

AllDirectories: Obejmuje bieżący katalog i wszystkie podkatalogi w operacji wyszukiwania. Ta opcja obejmuje punkty ponownej analizy, takie jak zamontowane dyski i dowiązania symboliczne w wyszukiwaniu.

// 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

Mogę zasugerować użycie "*" do dopasowania do plików, w przeciwnym razie pliki bez rozszerzeń nie będą uwzględniane w liczeniu. –

17

slickest metoda woud być użycie LINQ:

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

Możesz po prostu napisać: var fileCount = Directory.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; 

Można to wykorzystać.

3

Odczytywanie plików PDF z katalogu:

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

} 
-1

Aby uzyskać zliczania niektórych rozszerzeń typu przy użyciu LINQ można w ten prosty kod:

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

Spróbuj następujący kod, aby otrzymać liczbę plików w folder

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

Powiązane problemy