4

java.io.File.mkdir()を返す理由を調べるにはどうすればよいですかfalse。ディレクトリを手動で作成できます。

更新:私のコードは次のようになります:

String directoryName = "C:/some/path/";
File directory= new File(directoryName );
if (!directory.exists() && !directory.mkdir()) {
    throw new RuntimeException("Failed to create directory: " + directoryName);
}
4

5 に答える 5

9

mkdirs()親フォルダー (このsome例では) がまだ存在しない場合に使用する必要があります。

于 2012-05-24T16:09:07.700 に答える
3

答えは簡単です。ネストされたフォルダー(フォルダー内のフォルダー)を作成しようとしています。ネストされたフォルダの場合は、を使用しますFile.mkdirs()。それはうまくいきます(テスト済み)。

于 2012-05-24T16:11:29.883 に答える
1

Windows用のプロセスモニターのようなものを使用する場合は、ディレクトリを作成するためのOSレベルの試みを表示できます。

それはあなたにあなたが必要とする情報を与えるかもしれません。

通常、多くのディスクアクティビティが発生しているため、プロセスモニターでフィルターを使用する必要があります:)

于 2012-05-24T16:10:19.773 に答える
1

少なくとも Java からはできないと思います。OS がその決定を行うため、Java は OS に委譲して結果を返すだけです。

File オブジェクトが正しいと思われる場所を指していることを確認しましたか?

更新: C:/some が存在しない場合は、C:/some/path を作成する前に作成する必要があります。または、指摘されたように mkdirs() を使用します。

于 2012-05-24T15:53:43.050 に答える
0

cygwinを使用していますか?

mkdir は false を返す場合がありますが、とにかくフォルダーの作成に進みます。false は、フォルダーがまだ存在しないことを示しているだけのようです。

directory.exists()通話後に試してみる必要があるかもしれませんmkdir()(またはmkdirs())

于 2013-08-19T21:30:34.883 に答える