Comment puis-je savoir pourquoi java.io.File.mkdir () renvoie false

Comment puis-je savoir pourquoi java.io.File.mkdir() renvoie false . Je peux créer le répertoire manuellement.

METTRE À JOUR: Mon code ressemble à ceci:

String directoryName = "C:/some/path/";
File directory= new File(directoryName );
if (!directory.exists() && !directory.mkdir()) {
    throw new RuntimeException("Failed to create directory: " + directoryName);
}
0
Avez-vous vérifié si le répertoire existe avant d'essayer de le créer?
ajouté l'auteur Holly Cummins, source

5 Réponses

La réponse est simple, vous essayez de créer des dossiers imbriqués (un dossier dans un dossier). Pour les dossiers imbriqués, utilisez File.mkdirs() . Cela fonctionne, (testé).

0
ajouté

En utilisant cygwin ?

mkdir peut retourner false, mais continuez à créer le dossier de toute façon. Le faux semble seulement indiquer que le dossier n'existe pas encore.

Vous devrez peut-être essayer directory.exists() après l'appel mkdir() (ou même mkdirs() )

0
ajouté

Je ne pense pas que vous le pouvez, du moins pas de Java. Étant donné que l'OS fait cette détermination, Java lui délègue simplement et renvoie le résultat.

Avez-vous essayé de vous assurer que votre objet File pointait vers où vous pensez?

Mise à jour: si C:/some n'existe pas, il faut d'abord le créer avant de pouvoir créer C:/some/path. Ou utilisez mkdirs() comme indiqué.

0
ajouté
Qui a dit que vous ne pouvez pas mkdir dans java?
ajouté l'auteur Buhake Sindi, source
Quote: Je ne pense pas que vous pouvez, au moins pas de Java . Ce n'est pas vrai du tout.
ajouté l'auteur Buhake Sindi, source
La question était: "Comment puis-je savoir pourquoi java.io.File.mkdir() renvoie false", alors je lui ai répondu "Je ne pense pas que vous puissiez [découvrir]"
ajouté l'auteur Jonathan W, source
Il dit que vous ne pouvez pas dire pourquoi il a échoué.
ajouté l'auteur koregan, source

Vous devrez utiliser mkdirs() si le dossier parent ( some dans votre exemple) n'existe pas déjà.

0
ajouté

Si vous utilisez quelque chose comme moniteur de processus pour windows vous pouvez voir la tentative au niveau du système d'exploitation pour créer le répertoire.

Cela peut vous donner l'information dont vous avez besoin.

Vous aurez probablement besoin d'utiliser les filtres dans le moniteur de processus, car il y a généralement beaucoup d'activité sur le disque :)

0
ajouté