2008-09-09 5 views
18

私が取り組んでいるプロジェクトの場合。私はファイルシステム上で実行可能ファイルを探す必要があります。 UNIXデリバティブの場合、私はユーザが強力な$ PATH変数にファイルを持っていると仮定しますが、Windows上にはそのようなものはありません。Javaのドライブ文字をすべて検索する

私は、ファイルがファイルシステムの2レベル以下であるとは限りませんが、どのドライブになるかわかりません。すべてのドライブを試してみる必要がありますが、使用可能なすべてのドライブ(割り当てられている文字があります)をリストする方法を見つけることはできません。

助けが必要ですか?

EDIT:%PATH%変数がありますが、UNIXシステムと同じように統合されていません。たとえば、私が探しているアプリケーションはOpenOfficeです。このようなソフトウェアは%PATH%にはありません。

+0

ます。http:// stackoverflowの。com/questions/462110/acquire-drive-names-as-to-drive-letters-in-java も役に立ちます。 –

答えて

37

http://docs.oracle.com/javase/7/docs/api/java/io/File.html#listRoots()

File[] roots = File.listRoots(); 
for(int i = 0; i < roots.length ; i++) 
    System.out.println("Root["+i+"]:" + roots[i]); 

グーグル:リストは、Javaを駆動するには、最初は非常に厄介なことができる "どこでも" 探し

+2

ありがとうございます。私は、コーディングの代わりにGoogleのスキルを磨くために時間を費やす必要があると思います。 – wvdschel

+0

「google」とは何ですか? – Zon

+1

+ 7年後、これは[java windows lists drives](https://www.google.co.uk/search?q=java+list+windows+drives)のグーグル検索結果の上位になりました。 – earcam

-1

もちろん、PATHという環境変数in Windowsがあります。

%PATH% この変数は、コマンド・インタプリタは、実行可能ファイルを検索しますするディレクトリのセミコロン区切りのリストが含まれています。 UNIX $ PATH変数に相当します。

+0

%PATH%変数がありますが、UNIXシステムと同じように統合されていません。たとえば、私が探しているアプリケーションはOpenOfficeです。このようなソフトウェアは%PATH%にはありません。 – wvdschel

0

実際にWindowsにはPATH環境変数があります。それは、セミコロン(;)をコロン(:)の代わりにセパレータとして使用し、スペースを含む引用文字列を監視する必要があるため、Unixとは異なる構文をしています。しかし、それはそこにあります。

この他のプログラムのインストーラがPATH環境変数に独自のディレクトリを追加すると、それに頼ることができます。しかし、あなたが言及しているように、Windowsインストーラは通常、スタートメニューのショートカットなどをインストールするため、アプリケーションパスをPATHに追加する必要はありません。

Javaのドライブレターの場合、1つの方法はすべて試してみることです。使用するのは最大24個(CからZ)しかありません。あるいは、「net use」を実行して結果を解析することができますが、これはちょっと面倒です。

2

:-)ヒット。

CD-ROMドライブを見て、スピンアップします。それは非常に騒々しいことができます。

ネットワークドライブを調べると、速度が遅くなることがあります。サーバーが停止している可能性があります。タイムアウトするまで数分待つ必要があります。

たぶん(Windowsの-マシンの)あなただけのスタート・メニューになります。 OOoに何も触れていなければ、おそらくインストールされていないでしょう。そうであれば、ユーザーはおそらく上級ユーザーであり、手動で場所を指摘するのに問題はありません。

+4

CDは騒々しいですか?あなたのPCは明らかにフロッピードライブを持っていません。 _フロッピーがなくても騒がしいです。 – MSalters

0

使用JNI。 これはC++コードに最適です。 あなたはすべてのドライブをリストアップだけでなく、対応するドライブの種類(リムーバブル、ローカルディスク、またはCD-ROM、DVD-ROM ...等)を取得することができないだけ

関連する問題