2014-01-06 45 views
1

問候語。通過ASP.NET訪問同一服務器內的文件夾

我正在開發一個ASP.NET Web應用程序,並試圖列出在同一臺服務器上的文件夾的多個層的文件,但是是不同的文件夾(文件夾和Web應用程序文件夾)。

爲什麼我想訪問文件的原因是因爲我需要閱讀的創建日期和文件的文件名。我的應用程序動態地在gridview上填充細節,而不需要使用任何數據庫,並且提供了一個接一個地下載它的功能,或者將所有文件壓縮到一起並將它作爲一個壓縮的zip文件下載。

目前我的做法是共享文件夾了,我的應用程序正在訪問它,彷彿像一個文件系統。更糟糕的是,我不允許託管另一個IIS Web App。

問題: - 是否有任何其他的解決辦法比訪問它作爲一個共享文件夾等?

更新

private List<FileData> getFilesList(DateTime? startDate, DateTime? endDate, string exDir) 
    { 
     DirectoryInfo dir = new DirectoryInfo(exDir); 
     List<FileData> fileDataList = new List<FileData>(); 
     FileData fileEnt = null; 

     if (!dir.Exists) 
     { 
      return null; 
     } 

     if (startDate == null && endDate == null) 
     { 
      foreach (FileInfo fileInfo in dir.GetFiles()) 
      { 
       fileEnt = new FileData(); 
       fileEnt.fileName = fileInfo.Name; 
       fileEnt.createdDate = fileInfo.CreationTime; 
       fileEnt.stationCode = fileInfo.Name.Substring(0, 4); 
       fileEnt.filePath = fileInfo.DirectoryName; 
       fileDataList.Add(fileEnt); 
      } 
     } 
     else 
     { 
      foreach (FileInfo fileInfo in dir.GetFiles()) 
      { 

       if (fileInfo.CreationTime > startDate && fileInfo.CreationTime < endDate) 
       { 
        fileEnt = new FileData(); 
        fileEnt.fileName = fileInfo.Name; 
        fileEnt.createdDate = fileInfo.CreationTime; 
        fileEnt.stationCode = fileInfo.Name.Substring(0, 4); 
        fileEnt.filePath = fileInfo.DirectoryName; 
        fileDataList.Add(fileEnt); 
       } 
      } 
     } 

     return fileDataList; 
    } 

這是什麼部分是我的ASP.NET Web應用程序的一個片段。

我試圖訪問它在C:\ FolderA \ SubfolderB中,因爲我創建了一個配置ASP.NET頁面模擬文件夾瀏覽模式的頁面,以允許我的用戶指定我的Web應用程序列出哪個文件夾把裏面的所有文件都刪掉

流程是這樣: - 1)用戶選擇父文件夾(文件夾A) 2)系統從文件夾A.獲得的子文件夾列表通過所有子文件夾 3)系統迭代列出所有子文件夾中的文件名以及來自子文件夾列表的信息。

但是,每當我指定「F:\報告\ FolderA \」我無法獲得完整列表。但是,當我使用\ ServerName \ FolderA時,我可以獲得完整列表。

我的應用程序位於E:\ NETPrograms而我的文件位於F:\報告\ FolderA。

現在,安全團隊說,共享文件夾是被禁止的,我需要爲它找到另一種解決方法。

請指教。

+0

我不明白你在問什麼。沒有理由,如果權限適當,您的應用無法訪問服務器上的文件。 –

+0

爲什麼你需要解決?你可以發佈你用來訪問文件夾的代碼嗎,比如文件系統。 –

+0

如果您的文件位於'F:\ Reports \ FolderA'中,您爲什麼試圖通過'C:\ FolderA'訪問它們? –

回答

1

我想你已經通過與Everyone共享該文件夾給予了它的許可。 如果你不想公開共享,你可以去Folder Property - > Security並給IIS_USER的讀權限。 這種方式可以通過IIS_USER訪問並在您的應用程序中使用,並且不會公開共享。

+0

嗨伊姆蘭,你救了我的一天!非常感謝您的幫助。 :)乾杯。 –

相關問題