2012-05-31 282 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可能沒有權限訪問該目錄列出文件。