110,538
社区成员
发帖
与我相关
我的任务
分享
private static void FindGamePath()
{
Console.Clear();
Console.WriteLine("Search Start.");
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
{
DirectoryInfo dirInfo = new DirectoryInfo(@drive.RootDirectory.ToString());
GetAllFiles((object)dirInfo);
_getFilesThread = new Thread(GetAllFiles);
_getFilesThread.IsBackground = true;
_getFilesThread.Start(dirInfo);
}
}
private static void GetAllFiles(object dirInfo)
{
DirectoryInfo info = (DirectoryInfo)dirInfo;
try{
info.Attributes = info.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden;
}catch { }
try{
FileInfo[] all_files = info.GetFiles();
count += all_files.Length;
FileInfo[] files = info.GetFiles("*.exe");
foreach (FileInfo file in files)
{
try{
if (File.Exists(file.FullName))
{
file.Attributes = file.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden;
Console.Clear();
Console.WriteLine(file.FullName);
if (file.Name == "OFDR.exe")
{
Console.WriteLine("Find In: {0}.", file.FullName);
_getFilesThread.Abort();
_getFilesThread.Join();
}
}
}catch { }
}
}catch { }
try
{
DirectoryInfo[] infos = info.GetDirectories();
if (infos.Length > 0)
{
try
{
foreach (DirectoryInfo info0 in infos)
{
GetAllFiles(info0);
}
}
catch (IOException ex) { Console.WriteLine(ex.Message); Thread.Sleep(5000); }
}
}
catch { }
}