如何获得可移动磁盘的C#中的列表?(How to get the list of removable

2019-06-25 21:17发布

我想移动硬盘的C#中的列表。 我想跳过本地驱动器。 因为我希望用户将文件保存只在可移动磁盘。

Answer 1:

您将需要引用System.IO这种方法。

var driveList = DriveInfo.GetDrives();

foreach (DriveInfo drive in driveList)
{
    if (drive .DriveType == DriveType.Removable)
    {
    //Add to RemovableDrive list or whatever activity you want
    }    
}

或对LINQ球迷:

var driveList = DriveInfo.GetDrives().Where(d => d.DriveType == DriveType.Removable);



添加
至于储蓄一部分,据我所知,我不认为你可以限制在允许用户保存到使用SaveFileDialog,但你可以完成一个检查你已表明SaveFileDialog后。

if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
  if (CheckFilePathIsOfRemovableDisk(saveFileDialog.FileName) == true)
  {
  //carry on with save
  }
  else
  {
  MessageBox.Show("Must save to Removable Disk, location was not valid");
  }
}

要么

最好的办法是创建自己的保存对话框,其中包含一个树视图中,只显示可移动驱动器和它们的内容,为用户节省! 我会建议使用此选项。

希望这可以帮助



Answer 2:

怎么样:

var removableDrives = from d in System.IO.DriveInfo.GetDrives()
                      where d.DriveType == DriveType.Removable;


Answer 3:

您还可以使用WMI来获得可移动驱动器的列表。

ManagementObjectCollection drives = new ManagementObjectSearcher (
     "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();

基于评论编辑:

之后你的驱动器列表那里的GUID,并将它们添加到收藏SaveFileDialogInstance.CustomPlaces。

下面的代码需要一些调整...

System.Windows.Forms.SaveFileDialog dls = new System.Windows.Forms.SaveFileDialog();
dls.CustomPlaces.Clear();
dls.CustomPlaces.Add(AddGuidOfTheExternalDriveOneByOne);
....
....
dls.ShowDialog();


Answer 4:

本文着眼于这样的伎俩:

http://zayko.net/post/How-to-get-list-of-removable-drives-installed-on-a-computer-(C).aspx



文章来源: How to get the list of removable disk in c#?