2012-05-31 233 views
0

我是C#和ASP.NET的新手,我试图从目录中读取文件以便在页面上显示它们。我遇到的问题是,我试图读取的文件来自专有的电话录音软件,并且这些文件没有扩展名,因此当我试图使用Directory.GetFiles读取目录中的文件时( directoryName)我没有得到任何回报,就好像目录是空的。但是,当我使用不同的目录,其中的文件有扩展名时,我可以获取这些文件的列表。文件扩展名和C#

任何想法?

代码示例

string path = "C:\\Users\\directoryName"; 

foreach (string filename in Directory.GetFiles(path)) 
{ 
FileInfo file = new FileInfo(filename); 
string name = file.Name; 
Response.Write(name); 
} 

预先感谢您提供的任何帮助。

+0

你试过了吗?Directory.GetFiles(path,“*。”)'? ' –

+2

你确定你的路径正确吗?即使你没有指定模式,我也可以用一个简单的'var g = Directory.GetFiles(“c:\\ 00 \\ 10 \\ 01”);' – Jupaol

回答

1
Use Directory.GetFiles(path, "*.*") 
+0

它会搜索所有文件。在文件名中。 – Tilak

+0

提拉克,你错了。它会返回所有文件,不管它们是否有。或不。我的错误是 –

+0

。我认为它是一个正则表达式,而不是搜索模式 – Tilak

0

您可以使用Directory.GetFiles重载来包含所有文件。

Directory.GetFiles(path, "*") 
+0

这是否工作? ['Directory.GetFiles(string path)'方法](http://msdn.microsoft.com/zh-cn/library/07wt70x2.aspx)注释:_“此方法与带星号(*)的GetFiles相同指定为搜索模式。“_。 – CodeCaster

3

我有点怀疑它不适用于无扩展名的文件。所以我试过了你在一个控制台应用程序中提供的带有扩展名文件的测试目录下的代码。它对我来说工作正常,我不相信它没有扩展的事实是问题。

我会检查目录是否正确,IIS(应用程序的应用程序池帐户)有权访问目录中的文件,并且该目录中有文件。

+2

+1,也许这是一个权限问题。 – CodeCaster

+0

大家好,我正在使用本地计算机,目录中有文件和正确的权限。另外IIS在目录上有正确的设置。我复制了相同的文件,并在电话软件的文档中添加了它提供的扩展名,然后工作,但问题是应用程序无法处理带有扩展名的文件。我想我可以制作这些文件的副本,将它们放在不同的位置,并在使用它们之前添加扩展名。 – richcfml

+0

所以你是说你的.NET BCL版本与我的做法不一样,MSDN上的.net 2.0到4.0的文档也是错误的? http://msdn.microsoft.com/en-us/library/07wt70x2.aspx –

1

如果你想获得唯一没有扩展,你可以做以下文件:

 foreach (String sFile in Directory.GetFiles("PATH", "*.")) 
     { 
      Responce.Write(System.IO.Path.GetFileName(sFile)); 
     } 

我也同意克里斯,IIS可能没有权限访问该目录列出文件。