Javaでファイル名を表す文字列値をコンピュータ全体で検索する方法はありますか?これは、コンピュータ上のドライブの名前を知らなくても可能です。Javaでファイル名のコンピュータ全体を検索
答えて
ファイル名を調べたり、ディレクトリの場合は内容を再帰的に取得したりすることで、ファイルシステム全体を反復することができます。
問題がコンピュータ上のドライブを取得する方法である場合は、File.listRoots()関数を参照してドライブ文字のリストを取得します。
ETA:
絶対に安全のために、あなたは再帰的な処理に関するいくつかの制限を含めることになるでしょう。シンボリックリンクなどでファイルシステムにループを持たせることは可能です(特にLINUX/UNIXではそうですが、サードパーティのツールでもWindowsでこれを可能にすることができます)。
シンボリックリンクを扱うときにループにならないようにするには、File.getCanonicalPathメソッドを使用してディレクトリの「実際の」パスを取得し、すべての訪問正規のパスを追跡します。また、getCanonicalFileを使用してすべてのファイルを追跡することもできますが、同じファイルを2回処理するときどきのインスタンスを実際に避けたい場合を除き、おそらく必要ありません。
また、再帰処理の例外を忘れないでください。アクセス権の制限により、一部のフォルダにアクセスできない場合があります。また、Windowsシステムフォルダ "System Volume Information"はWindowsエクスプローラに入力することができませんので、プログラマチックに入ると例外がスローされます。
あなたは、ファイルシステム全体を通じて再帰呼び出しを使用することができます。
listRoots()
:あなたはjava.io.File
の次の方法を使用することができますMac OS Xで、Windowsでは、それはドライブです(ルートファイルを一覧表示し、それは '/'です)。listFiles()
:あなたのようにFile file = new File("/"); //root
:あなたは、ファイルやディレクトリを見ているかどうかを判断するためにFileオブジェクトを使用することができます
ディレクトリの囲みファイルを一覧表示あなたの好みに応じて再帰的に繰り返されます(またはあなたの好みに応じて繰り返します)。
if(tempFile.isDirectory())
//do recursive call on that directory
else
//perform check on file name
- 1. コンピュータでの音楽ファイルの検索
- 2. これ以上のデータまで、ファイル全体を検索
- 3. レールアプリケーションでのサイト全体の検索
- 4. Visual Basic - システム全体のファイル名や文字列を検索するには?
- 5. テーブル全体で検索を実行
- 6. C#コンピュータ内のファイルを検索
- 7. Emacsでは、ファイル全体を検索する方法は?
- 8. Powershellレジストリ - 全体のキー/サブキーを検索
- 9. Azureのテーブル:表全体を検索
- 10. Android Studio - パッケージ全体の行を検索
- 11. アプリ全体でグローバルな「検索機能」
- 12. システム全体のファイル拡張子を検索する
- 13. ; xml全体を検索する
- 14. 検索VBscriptの単語全体
- 15. 一部のファイル名のみを指定して完全なファイル名を検索
- 16. MongoDB Java API:全文検索
- 17. Meteor.usersでユーザー名全文を検索
- 18. ファイル名を検索
- 19. メディアライブラリのファイル名で検索
- 20. Java:コンピュータ名でコンピュータ仕様を取得
- 21. Javaのファイル検索
- 22. を検索するADコンピュータでは、ウィンドウズ7はアクティブディレクトリ全体で1つのOUを除いて「無効」
- 23. プロジェクト全体から検索する
- 24. データフレーム全体での最大値と対応する列/インデックス名の検索
- 25. Javaで検索するファイル
- 26. すべてのPDFファイルをHDD全体で検索するには?
- 27. 文全体の小冊子の索引の検索方法
- 28. Linuxファイルシステム全体でファイル/フォルダの名前と内容を検索して置き換えます
- 29. 検索、完全なクラス名を返す
- 30. VBA Outlookの件名にRestricメソッドがフレーズ全体を検索しません。
これはlinuxで動作するのだろうか...ドライブはルートではなくルートファイルシステムのフォルダであるので、 –
名前が示すように、メソッドは単にその単一のルートファイルシステムを返します。それはドライブについて何も言わない。 –
無限再帰を作成する可能性のあるリンクを監視します。 @Nuno:はい。マウントされたドライブは、マウントポイントを含むディレクトリが "リストされている"ときに返されます。 – erickson