おはようございます。Java検出ディレクトリ
現在、私はディレクトリを解析する必要があるアプリケーションを管理しています。 アプリケーションはFile.isDirectory()
を使用して、指定されたパスがディレクトリかファイルかを検出し、含まれているすべてのファイルとサブディレクトリを再帰的に取り出します。
ディレクトリ名にスペースが含まれていない場合、C:\Foo\Bar
のようなパスでは、Foo
とBar
の両方がディレクトリとして検出されます。 C:\F oo\Bar
のようなパスはありません。File.isDirectory()
は、このようなパス上でfalse
(File.isFile()
と同様)を返します。
一方、File.isAbsolute()
はtrue
を返します。ファイルライブラリによれば絶対パスですが、ファイルでもディレクトリでもありません。
回避策はありますか?任意のパスがディレクトリであるかどうかを検出する代替手段はありますか?または、私はそれらの中にスペースのないディレクトリ上でのみ、このアプリケーションを実行することになりますか?
ありがとうございました。
編集:ファイルは、文字列がファイルに変換され、文字列に戻され、5-6回のメソッド呼び出し(自分のコードではない)に変換されるかなり曲がりくねったプロセスによって作成されます。とにかく、私は問題の根源を見つけたと思います。私はそれを修正します。
この質問を削除する必要がありますか?私はそれが将来のユーザーにとって非常に有用であるとは思わない。
いくつかのコードを投稿してください - どのように 'File'オブジェクトを作成していますか? – OldCurmudgeon
スペースとは関係ありません。 Java Fileクラスは、スペースを処理する方法を知っています。あなたのコードでなければなりません。あなたがどこかでトリムを呼んでいるかどうか調べてみてください。 – eladyanai
Cドライブに「F oo」という名前のフォルダがあります。 'File.exists()は何を言っているのですか? –