我想獲取wampmanager.conf磁盤上命名的檔案的完整路徑D。我為此撰寫了以下代碼:
private static string Scan(string path, string file)
{
try
{
foreach (var dir in Directory.EnumerateDirectories(path))
{
foreach (var fl in Directory.EnumerateFiles(dir, file))
{
if (!string.IsNullOrEmpty(fl))
{
return fl;
}
}
}
}
catch (Exception)
{
// ignored
}
return null;
}
var wmc = Scan(@"D:\", "wampmanager.conf");
MessageBox.Show(wmc);
null即使wampmanager.conf檔案存在于磁盤上,它也總是回傳D。我猜它會進入一個d:\recovery\我無權訪問的目錄,然后它會崩潰并回傳 null。但是當我不使用 try catch 時,我總是會遇到訪問授權錯誤。我該如何處理這個問題?
uj5u.com熱心網友回復:
對于您必須使用的每個目錄SearchOption.AllDirectories,在搜索操作中包括當前目錄及其所有子目錄。試試這個功能:
private static string Scan(string path, string file)
{
foreach (var dir in Directory.EnumerateDirectories(path))
try
{
string[] files = Directory.GetFiles(dir, file, SearchOption.AllDirectories);
if (files.Length > 0)
{
return files[0];
}
}
catch (Exception e)
{
string s = e.Message;
}
return "not found!";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/523304.html
標籤:C#表格目录
