2016-03-09 31 views
-1

我想制作一个程序,需要找到一个特定的文件夹才能工作,通常它会是“C:\ Program Files文件(x86)\ Steam \ SteamApps \ common \ Team Fortress 2“,但它可以安装在不同的驱动器或单独的”程序文件“中。是否有任何方法检查每个可用的驱动器以找到它,并且如果根本找不到它(例如,E:\ Games \ Team Fortress),则将布尔值或某物(boolCanFindFolder)标记为false,以便我可以提示用户输入自己的目录,然后检查它是否存在?寻找所有驱动器上的特定文件夹

+1

你要找的'DriveInfo.GetDrives()'和'Directory.Exists()'。 – SLaks

+0

因此,也许我可以得到所有的驱动器,并单独检查每一个?你能否给我一个粗略的概述,说明我会如何去设定它?干杯! –

+2

@MaxBox - 我们不是代码编写服务。在这种情况下,Google是你的朋友。你应该能够找到大量的参考文献如何做到这一点。当你试图实现它,你会卡住,然后回到这里,问我们一个问题,显示你的代码,我们很乐意提供帮助。这就是Stack Overflow的意义 - 帮助解决**特定的编程问题。 – Enigmativity

回答

0

要获得机器上可用驱动器的列表,您可以使用System.IO.DriveInfo类,它可以是

这里是为您解决问题的例子:

string[] candidatePaths= {@"Program Files",@"Program Files (x86)\Steam\SteamApps\common\Team Fortress 2"}; 

    var path = ""; 
    foreach(var drive in DriveInfo.GetDrives()) 
    {  
     foreach(var candPath in candidatePaths) 
     { 
     if(Directory.Exists(Path.Combine(drive, candPath)) 
     { 
      found = true; 
      path = Path.Combine(drive, candPath); 
      break; 
     }   
     } 
     if(found) 
      break; 
    } 
    if(!found) 
    { 
     Console.Writeline("Please enter a path"); 
     path = Console.ReadLine(); 
    } 
相关问题