USBストレージデバイスと書き込み可能なCD / DVDドライブの検出方法(C#) -- c# フィールド と .net-2.0 フィールド 関連 問題

How to discover USB storage devices and writable CD/DVD drives (C#)












5
vote

問題

日本語

与えられた時間に利用可能なUSBストレージデバイスやCD / DVDライタをどのように調べることができます(C#.NET2.0を使用)。

私は、ファイルを物理的に取り除くために保存することができるデバイスの選択をユーザーに提示したい - すなわちハードドライブではない。

英語

How can I discover any USB storage devices and/or CD/DVD writers available at a given time (using C# .Net2.0).

I would like to present users with a choice of devices onto which a file can be stored for physically removal - i.e. not the hard drive.

</div
     

回答リスト

9
 
vote
vote
ベストアンサー
 
<事前> <コード> using System.IO; DriveInfo[] allDrives = DriveInfo.GetDrives(); foreach (DriveInfo d in allDrives) { if (d.IsReady && d.DriveType == DriveType.Removable) { // This is the drive you want... } }

DriveInfoクラスのドキュメントはこちら:

http://msdn.microsoft.com/en.en. -US / Library / System.IO.DriveInfo.aspx

 
using System.IO;  DriveInfo[] allDrives = DriveInfo.GetDrives(); foreach (DriveInfo d in allDrives) {   if (d.IsReady && d.DriveType == DriveType.Removable)   {     // This is the drive you want...   } } 

The DriveInfo class documentation is here:

http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx

</div
 
 
1
 
vote

これは、コンピュータに接続されているリムーバブルドライブまたはCDROMドライブをチェックするためのVB.NETコードです。

<事前> <コード> Me.lstDrives.Items.Clear() For Each item As DriveInfo In My.Computer.FileSystem.Drives If item.DriveType = DriveType.Removable Or item.DriveType = DriveType.CDRom Then Me.lstDrives.Items.Add(item.Name) End If Next

このコードをC#等価物に変更するのは難しくありません。 drivetype が利用可能です。
MSDNから:

  • 不明:ドライブの種類は不明です。
  • norootdirectory:ドライブにはルートディレクトリがありません。
  • 取り外し可能:ドライブは、フロッピーディスクドライブやUSBフラッシュドライブなどのリムーバブル記憶装置です。
  • 固定:ドライブは固定ディスクです。
  • ネットワーク:ドライブはネットワークドライブです。
  • cdrom:ドライブはCDやDVD-ROMなどの光ディスク装置です。
  • RAM:ドライブはRAMディスクです。
 

this is VB.NET code to check for any removable drives or CDRom drives attached to the computer:

Me.lstDrives.Items.Clear() For Each item As DriveInfo In My.Computer.FileSystem.Drives     If item.DriveType = DriveType.Removable Or item.DriveType = DriveType.CDRom Then         Me.lstDrives.Items.Add(item.Name)     End If Next 

it won't be that hard to modify this code into a c# equivalent, and more driveType's are available.
From MSDN:

  • Unknown: The type of drive is unknown.
  • NoRootDirectory: The drive does not have a root directory.
  • Removable: The drive is a removable storage device, such as a floppy disk drive or a USB flash drive.
  • Fixed: The drive is a fixed disk.
  • Network: The drive is a network drive.
  • CDRom: The drive is an optical disc device, such as a CD or DVD-ROM.
  • Ram: The drive is a RAM disk.
</div
 
 
1
 
vote

C#では、System.IO.DriveInfoクラス

を使用して同じことができます。 <事前> <コード> using System.IO; public static class GetDrives { public static IEnumerable<DriveInfo> GetCDDVDAndRemovableDevices() { return DriveInfo.GetDrives(). Where(d => d.DriveType == DriveType.Removable && d.DriveType == DriveType.CDRom); } }
 

in c# you can get the same by using the System.IO.DriveInfo class

using System.IO;  public static class GetDrives {     public static IEnumerable<DriveInfo> GetCDDVDAndRemovableDevices()     {         return DriveInfo.GetDrives().             Where(d => d.DriveType == DriveType.Removable             && d.DriveType == DriveType.CDRom);     }  } 
</div
 
 
0
 
vote

これはvb.net用の完全なモジュールです。
Imports System.IO
Module GetDriveNamesByType
リストボックスとしての関数getDrivenams(オプションのbyval dtype = drivetype.removable)listBox
my.computer.filesystem.drivesのsystem.io.driveInfoとしての各DNについて
dn.driveType = dtype
を終了する 次へ
終了関数
エンドモジュール

<事前> <コード> 'Drive Types <br> 'Unknown: The type of drive is unknown. <br> 'NoRootDirectory: The drive does not have a root directory. <br> 'Removable: The drive is a removable storage device, such as a floppy disk drive or a USB flash drive. <br> 'Fixed: The drive is a fixed disk. <br> 'Network: The drive is a network drive. <br> 'CDRom: The drive is an optical disc device, such as a CD or DVD-ROM. <br> 'Ram: The drive is a RAM disk. <br>
 

This is a complete module for VB.NET :
Imports System.IO
Module GetDriveNamesByType
Function GetDriveNames(Optional ByVal DType As DriveType = DriveType.Removable) As ListBox
For Each DN As System.IO.DriveInfo In My.Computer.FileSystem.Drives
If DN.DriveType = DType Then
GetDriveNames.Items.Add(DN.Name)
End If
Next
End Function
End Module

'Drive Types <br> 'Unknown: The type of drive is unknown. <br> 'NoRootDirectory: The drive does not have a root directory. <br> 'Removable: The drive is a removable storage device, such as a floppy disk drive or a USB flash drive. <br> 'Fixed: The drive is a fixed disk. <br> 'Network: The drive is a network drive. <br> 'CDRom: The drive is an optical disc device, such as a CD or DVD-ROM. <br> 'Ram: The drive is a RAM disk. <br> 
</div
 
 

関連する質問

7  NETブラウザの検出を無効にする方法はありますか?  ( Is there a way to disable net browser detection ) 
ASP.NET 2.0で追加されたブラウザ検出機能を無効にする方法を見つけませんでした。 all 私のページへの要求は、すなわちIEが要求しているかのように扱われています。 私の修正プログラムは私のプロジェクトにapp_browsersフォルダを追加するこ...

1  Visual Studios 2005 - Designer /プロパティウィンドウでカスタムプロパティのクリア  ( Visual studios 2005 clear custom properties in designer property window ) 
朝すべて、 イメージプロパティを使用したカスタムコントロールを作成しました。そのimageプロパティはプライベートイメージ変数への取得/セットです。 デザイナーからプロパティをクリアするためにそのget / setを有効にする方法を誰かに教えてください。 すき...

26  UACはコンソールアプリケーションに必要です  ( Uac need for console application ) 
管理者レベルを必要とするコードを使用するために必要なコンソールアプリケーションを持っています。私はそのようなマニフェストファイルmyprogram.exe.manifestを追加する必要があることを読んだ: <事前> <コード> <?xml version="...

5  CLRプロファイラ - 既存のプロセスへの接続  ( Clr profiler attaching to existing process ) 
.NET 2.0でCLRプロファイルのようなものを使用して、(ASP.NETワーカープロセスの)任意の時点でヒープ内のスペースを増しているものを確認します。 しかし、CLRプロファイラはアプリを起動するだけで、既存のものには添付されていません。私はこれが割り...

1  コマンドラインユーティリティのヘルプを表示します  ( Showing help for a command line utility ) 
私のサイトからかなりのダウンロードを取得するコマンドラインユーティリティを持っています。ユーザーが/を使用しているときに使用を見せようとしていますか?または/ヘルプパラメータ。私は利用可能なパラメータに正しい形式のテキストを持つshowUsage()と呼ばれる...

0  ORMは、ツールおよび/またはコードをサポートしているがXMLがない.NET 2.0用です。  ( Orms for net 2 0 with tool and or codesmith support but without xml ) 
完全にコード構成されている.NET 2.0(Windows 2000上で実行する必要がある、SO 3.0 / 3.5がOUTを実行する)のORMフレームワークを検索していて、XMLを必要としません。アプリがスタンドアロンになることができ、サポートファイルなしで...

1  ユーザーが「Enter」を押すとオートコンプリートが停止します  ( Autocomplete stopping when user presses enter ) 
私は商業部位でAutoCompleteExtenderを使っています。私の問題は、ユーザーが単語の一部ですぐに入力し、すぐに「Enter」を押すと、 not に戻って紹介のリストを返します。たとえば、データベースに「テキサス、アメリカ合衆国」というフレーズがあ...

1  デバッグで編集しようとしているときに許可されていない64ビットに変更します。  ( Change to 64 bits not allowed when trying to edit in debug why ) 
デバッグで編集しようとすると、このメッセージを表示します(下の図を参照)。これは、私のXPコンピュータではなく、Vista64BITS OSでのみ発生します。なぜそして私は何をすべきか? アップデート デバッグ時に値を変更できるようにx86でコンパイルする必...

61  NET 2.0実行時のLINQ  ( Linq on the net 2 0 runtime ) 
LINQ対応アプリは、.NET 2.0ランタイムがインストールされているマシン上で実行されますか? 理論的には、LINQは構文砂糖以下であり、結果として生じるILコードは、.NET 2.0にあると同じように見えるべきです。 .NET 3.5ライブラリを使用...

1  JQueryUIを使用したASP.NET:テキストボックスの値がNULLとして取得されているボタンクリックイベント  ( Asp net with jqueryui text box value is getting as null in button click event ) 
私はボタンをクリックしたときにボタンを持っているASP.NETページがあります。ログインしていないユーザーがログインしていないか確認します。ログインするモーダルポップアップを表示します(JQueryUIを使用して)。 BtnLoginのClickイベントのjq...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有