Kann mir jemand den Unterschied zwischen diesen beiden Methoden erklären:
file.mkdir()
file.mkdirs()
java
android
directory
android-file
Krishna Kankal
quelle
quelle
Antworten:
mkdirs()
Erstellt auch übergeordnete Verzeichnisse in dem Pfad, den diesFile
darstellt.Javadocs für
mkdirs()
:Javadocs für
mkdir()
:Beispiel:
wird
false
für das erste [und es wird kein Verzeichnis erstellt] undtrue
für das zweite nachgeben , und Sie werden erstellt habennon_existing_dir/someDir
quelle
mkdir()
zurückgegebentrue
oderfalse
? Der Javadoc scheint diesen Aspekt nicht abzudecken.mkdirs()
erstellt den angegebenen Verzeichnispfad in seiner Gesamtheit, wobeimkdir()
nur das unterste Verzeichnis erstellt wird. Dies schlägt fehl, wenn das übergeordnete Verzeichnis des Verzeichnisses, das erstellt werden soll, nicht gefunden werden kann.Mit anderen Worten
mkdir()
ist wiemkdir
undmkdirs()
ist wiemkdir -p
.Stellen Sie sich zum Beispiel vor, wir haben ein leeres
/tmp
Verzeichnis. Der folgende Codewürde die folgenden Verzeichnisse erstellen:
/tmp/one
/tmp/one/two
/tmp/one/two/three
Wo dieser Code:
würde keine Verzeichnisse erstellen - wie es nicht finden würde
/tmp/one/two
- und würde zurückkehrenfalse
.quelle
Erstellt jeweils nur ein Verzeichnis, wenn es nur dieses übergeordnete Verzeichnis ist. Andernfalls kann das Unterverzeichnis erstellt werden (wenn nur der angegebene Pfad vorhanden ist) und keine Verzeichnisse zwischen zwei Verzeichnissen erstellt werden. Daher können nicht mehrere Verzeichnisse in einem Verzeichnis erstellt werden
Erstellen Sie mehrere Verzeichnisse (auch zwischen zwei Verzeichnissen) gleichzeitig.
quelle