我想列出我的程序有權訪問的所有文件和文件夾並將它們寫入文本文件。我將如何獲得名單?我需要一種方法來捕獲或不拋出UnauthorizedAccessExceptions對不可訪問的文件夾。c# - 如何列出硬盤上的所有文件和文件夾?
3
A
回答
0
查看Directory.GetFiles()
及相關方法。
0
您可以
var files = from file in Directory.EnumerateFiles(@"your Path", "*.*", SearchOption.AllDirectories)
select file;
7
嘗試請嘗試使用代碼:
private static IEnumerable<string> Traverse(string rootDirectory)
{
IEnumerable<string> files = Enumerable.Empty<string>();
IEnumerable<string> directories = Enumerable.Empty<string>();
try
{
// The test for UnauthorizedAccessException.
var permission = new FileIOPermission(FileIOPermissionAccess.PathDiscovery, rootDirectory);
permission.Demand();
files = Directory.GetFiles(rootDirectory);
directories = Directory.GetDirectories(rootDirectory);
}
catch
{
// Ignore folder (access denied).
rootDirectory = null;
}
if (rootDirectory != null)
yield return rootDirectory;
foreach (var file in files)
{
yield return file;
}
// Recursive call for SelectMany.
var subdirectoryItems = directories.SelectMany(Traverse);
foreach (var result in subdirectoryItems)
{
yield return result;
}
}
客戶端代碼:
var paths = Traverse(@"Directory path");
File.WriteAllLines(@"File path for the list", paths);
+0
@aiodintsov,當然!由於Windows UAC。您可以爲您的應用程序添加清單(http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware)以使用高程。 –
0
使用遍歷塞爾建議和DriveInfo類,你可以有訪問可用於PC的所有文件。
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
if (d.IsReady == true)
{
var paths = Traverse(d.Name);
File.AppendAllLines(@"File path for the list", paths);
}
}
0
嘗試
string[] files = Directory.GetFiles(@"C:\\", "*.*", SearchOption.AllDirectorys);
這應該給你包含硬盤上的所有文件陣列。
相關問題
- 1. 如何列出硬盤中文件夾下的所有文件名?
- 2. 列出Google雲端硬盤中的所有文件夾內容
- 3. C - 列出文件夾和所有子文件夾中包含的文件
- 4. 如何分析1TB硬盤中的文件和文件夾?
- 5. 如何遞歸列出所有文件夾和文件?
- 6. 如何獲得在C#中從谷歌雲端硬盤API的所有文件夾中的所有文件
- 7. 爲Google雲端硬盤中的所有文件和文件夾添加前綴
- 8. 如何列出位於SD卡上的所有文件和文件夾
- 9. 如何列出所有的文件夾及其文件在php
- 10. 列出excel中文件夾和子文件夾中的所有文件
- 11. 如何列出tomcat中的文件夾中的所有文件?
- 12. 如何列出文件夾中的所有文件?
- 13. 如何使用批處理文件列出具有大小的所有文件夾和子文件夾
- 14. 如何使用C#列出文件夾中的所有圖像?
- 15. 使用Dropbox API列出Dropbox的所有文件夾和文件
- 16. 列出所有文件和文件夾的大小爲
- 17. 通過終端遞歸列出所有文件和文件夾
- 18. MVC4列出文件夾中的所有子文件夾
- 19. 如何將文件上傳到Google雲端硬盤文件夾,而我的雲端硬盤文件夾擁有共享鏈接並具有修改權限?
- 20. 如何使用FolderBrowserDialog列出所選文件夾中的所有文件?
- 21. 獲取所有Outlook文件夾和子文件夾的列表
- 22. powershell複製文件夾中的所有文件夾和文件
- 23. C#Winforms - 使用特定文件名刪除硬盤上的文件夾?
- 24. Dropbox中的所有文件夾和文件夾的列表
- 25. 如何從硬盤導出MySQL數據庫(數據文件夾)?
- 26. Google雲端硬盤文件ID和文件夾ID慣例
- 27. 文件夾和文件權限與備份硬盤不一樣
- 28. 如何強制將文件夾中的所有文件歸Google雲端硬盤中的文件夾所有者所有?
- 29. 如何在.NET中複製文件夾和所有子文件夾和文件?
- 30. 列表而不extention的文件夾和子文件夾中的所有文件
我無法找到一種方法來列出所有文件,而不必使用此方法獲取UnauthorizedAccessException。 –
你將不得不付出一些努力來解決這個問題。通過這些方法查看是否有獲取權限的方法。但是,最終,您總是可以捕獲異常,並且如果您得到該異常,那麼您的程序知道它無法訪問該特定位置。 –
這是因爲您沒有足夠的權限來訪問硬盤驅動器上的所有目錄。您應該簡單地用try塊包裝呼叫並管理這些錯誤。 – Eilistraee