現在、コンピュータのファイルを検索するC#アプリケーションを開発中です。 GUIには、入力用(検索するファイルの名前)とファイルへのパスを表示用(見つかった場合)の2つのテキストフィールドがあります。C#コンピュータ内のファイルを検索
問題は、アプリケーションが論理C:ドライブをスキップしていることです。
foreach (string s in Directory.GetLogicalDrives())
{
if (list.Count == 0)
{
foreach (string f in Directory.GetFiles(s, file))
{
textBox2.Text = f;
list.Add(f);
}
if (list.Count == 0)
{
search(s);
}
}
}
や検索方法:ここで
private void search(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
if (list.Count == 0)
{
Console.WriteLine(d);
foreach (string f in Directory.GetFiles(d, file))
{
textBox2.Text = f;
list.Add(f);
}
if (list.Count == 0)
{
search(d);
}
}
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
一部出力されます。ここでは、コードのいくつかの作品は、ある
C:\$Recycle.Bin
C:\$Recycle.Bin\S-1-5-21-1794489696-3002174507-1726058468-1000
C:\Config.Msi
C:\de cautat
C:\de cautat\database
C:\de cautat\fut_bot
C:\de cautat\helper
C:\de cautat\images
C:\de cautat\itemiinfo
C:\de cautat\JSONs
C:\de cautat\JSONs\PLAYER
C:\de cautat\JSONs\USER
C:\de cautat\requests
C:\Documents and Settings
A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll
Access to the path 'C:\Documents and Settings' is denied.
D:\$RECYCLE.BIN
D:\$RECYCLE.BIN\S-1-5-21-1794489696-3002174507-1726058468-1000
D:\$RECYCLE.BIN\S-1-5-21-2637989945-465084399-3498881169-1000
etc
誰も私を助け、accesingときに問題が何であるかを伝えることができます
それらのフォルダ?ありがとう!
注:Windows 7 x64(.NET Framework 2.0)でMicrosoft Visual Studio 2010を使用しています。
権限の問題。アプリケーションが実行されているアカウントには、それらのフォルダを参照する権限がありません。 – Oded