如何显示目录内的文件

问题描述:

我想获取目录中的文件列表,在这种情况下“c:\ dir \”(当然我有文件里面),我想在控制台程序中显示这些文件的名称建立在C#....如何显示目录内的文件

最初我这样做....

static class Program 
    { 
     static void Main() 
     { 
      string[] filePaths = Directory.GetFiles(@"c:\dir\"); 
      Console.WriteLine(); 
      Console.Read(); 


     } 
    } 

我怎么能看到这些文件的名称....... 任何帮助,将不胜感激.. ...

谢谢。

(进一步我想知道,如果可能的话就向发送动态HTML页面的文件路径的任何想法....任何一般概念该怎么做......)

如果“文件名”你的意思是字面上只是路径

string[] filePaths = Directory.GetFiles(@"c:\dir"); 
for (int i = 0; i < filePaths.Length; ++i) { 
    string path = filePaths[i]; 
    Console.WriteLine(System.IO.Path.GetFileName(path)); 
} 
+0

实际上,我是否可以知道它是否可以将这些路径动态地发送给html文件....我的意思是我在控制台应用程序中看到的路径... C:\ dir \ a.jpeg ...... ..... C:\ dir \ home.txt等 – tike 2010-01-29 20:23:52

+0

所以如果你想显示一条消息“目录是空的......”或类似的东西你会使用一个if/else语句?如果是的话,那么标准是什么?我试过“如果我== 0”作为我的标准,但它不工作。 – 2014-07-01 19:38:24

+0

@MattP:听起来像你想检查'if(filePaths.Length == 0)'(在'for'循环之外)吗? – 2014-07-01 20:11:49

foreach(FileInfo f in Directory.GetFiles()) Console.Writeline(f.Name)

foreach (string filename in filePaths) { 
    Console.WriteLine(filename); 
} 

遍历文件并打印一次一个:

foreach(string folder in Directory.GetDirectories(@"C:\dir")) 
{ 
    Console.WriteLine(folder); 
} 

foreach(string file in Directory.GetFiles(@"C:\dir")) 
{ 
    Console.WriteLine(file); 
} 
+0

但不列入显示我的文件夹名称,例如我有5个文件夹和1个.jpeg它只显示.jpeg。 – tike 2010-01-29 20:12:10

+0

使用Directory.GetDirectories也可以打印所有文件夹。我编辑了帖子以显示这一点。 – Aaron 2010-01-29 20:14:13

+0

GetFiles返回一个FileInfo类型的数组,它应该是foreach(FileInfo fi in Directory.GetFiles(@“C:\ Dir”)){Console.WriteLine(file.Name);} – kd7 2010-01-29 20:14:30

请记住,如果有文件夹中的许多文件,你将有内存问题。
.NET 4.0中包含的修复程序:C# directory.getfiles memory help