2009-07-14 14 views

答えて

30

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"); 
    } 
} 

OR

最良のオプションは、のみに保存するユーザーのために、リムーバブルドライブとその内容を示す、ツリービューが含まれている独自の名前を付けて保存]ダイアログを作成することです!私はこのオプションをお勧めします。

ホープこれはあなたがまた、リムーバブルドライブのリストを取得するためにWMIを使用することができます

+0

こんにちはThePower、 利用可能なリムーバブルドライブをダイアログボックスとして表示してファイルを保存したいとします。助けてください。 – Anuya

+1

@karthik私はあなた自身のカスタマイズされた保存ダイアログを作る必要があると思います。これはあなたがドライブのリストから得たディレクトリだけを表示します。saveFileDialog.InitialDirectoryをリムーバブルドライブの1つに設定することもできますが、ユーザーは引き続きハードドライブなどに戻ることができます。 独自のダイアログを作成する時間があれば、これが最適ですTreeViewを使用してRemovableDriveとその内容を表示しますが、これはこのソリューションを実現するよりも時間がかかります。 – ThePower

+0

linqクエリにエラーがあります。「取り外し可能」ではなく「リムーバブル」にする必要があります – Lonefish

4

この記事では、トリックを行うことになります。

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

+0

Hリス、 私はiListsに新しいです。 リンクでコードを実行する方法は、ユーザーにリムーバブルドライブのダイアログを表示するためにinorderを与えましたか? 助けてください。緊急。 – Anuya

+0

このリンクのサンプルコードは、リムーバブルドライブのリストを返します。これをダイアログで使用するには、おそらく@ThePowerが提案するカスタムダイアログを作成する必要があります。 –

+0

この投稿のリンクはありません。答えはどうすればいいですか?すべての答えは、今日(25-10-17)がもう存在しないリソースへのリンクです。 – Jura25

9

方法について:あなたは、このメソッドのためSystem.IOを参照する必要があります

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

または同義語: var removableDrives = DriveInfo.GetDrives()。ここで(d => d.DriveType == DriveType.Removable); –

3

に役立ちます。コメントをもとに

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(); 
+0

USBではなくSDであればどうなりますか?それともこれはそれに応えますか? – ThePower

関連する問題