HTMLInputElement: webkitdirectory-Eigenschaft
Die HTMLInputElement.webkitdirectory
ist eine Eigenschaft,
die das webkitdirectory
HTML-Attribut widerspiegelt und angibt, dass das <input>
-Element dem Benutzer erlauben sollte, Verzeichnisse statt Dateien auszuwählen. Wenn ein Verzeichnis ausgewählt wird, sind das Verzeichnis und dessen gesamte Hierarchie des Inhalts in der Menge der ausgewählten Elemente enthalten. Die ausgewählten Dateisystemeinträge können über die webkitEntries
-Eigenschaft abgerufen werden.
Hinweis:
Diese Eigenschaft wird in der Spezifikation webkitdirectory
genannt aufgrund ihrer Herkunft als Google Chrome-spezifische API. Es ist wahrscheinlich, dass sie eines Tages umbenannt wird.
Wert
Ein Boolean; true
, wenn das <input>
-Element nur die Auswahl von Verzeichnissen erlauben sollte, oder false
, wenn nur Dateien auswählbar sein sollten.
Verständnis der Ergebnisse
Nachdem der Benutzer eine Auswahl getroffen hat, hat jedes File
-Objekt in files
seine File.webkitRelativePath
-Eigenschaft auf den relativen Pfad innerhalb des ausgewählten Verzeichnisses gesetzt, an dem sich die Datei befindet. Betrachten Sie beispielsweise dieses Dateisystem:
-
Fotoalben
-
Geburtstage
-
Jamies 1. Geburtstag
- PIC1000.jpg
- PIC1004.jpg
- PIC1044.jpg
-
Dons 40. Geburtstag
- PIC2343.jpg
- PIC2344.jpg
- PIC2355.jpg
- PIC2356.jpg
-
-
Urlaub
-
Mars
- PIC5533.jpg
- PIC5534.jpg
- PIC5556.jpg
- PIC5684.jpg
- PIC5712.jpg
-
-
Wenn der Benutzer Fotoalben
auswählt, enthält die von files gemeldete Liste File
-Objekte für jede oben aufgeführte Datei – aber nicht die Verzeichnisse. Der Eintrag für PIC2343.jpg
wird einen webkitRelativePath
von
Fotoalben/Geburtstage/Dons 40. Geburtstag/PIC2343.jpg
haben. Dies macht es möglich, die Hierarchie zu kennen, auch wenn die FileList
flach ist.
Hinweis:
Das Verhalten von webkitRelativePath
ist unterschiedlich
in Chromium < 72. Sehen Sie diesen Fehler für weitere Details.
Beispiele
In diesem Beispiel wird ein Verzeichniswähler präsentiert, der dem Benutzer erlaubt, ein oder mehrere Verzeichnisse auszuwählen. Wenn das change
-Ereignis auftritt, wird eine Liste aller Dateien erstellt, die sich in den ausgewählten Verzeichnishierarchien befinden, und angezeigt.
HTML
<input type="file" id="file-picker" name="fileList" webkitdirectory multiple />
<ul id="listing"></ul>
JavaScript
document.getElementById("file-picker").addEventListener(
"change",
(event) => {
let output = document.getElementById("listing");
for (const file of event.target.files) {
let item = document.createElement("li");
item.textContent = file.webkitRelativePath;
output.appendChild(item);
}
},
false,
);
Ergebnis
Spezifikationen
Specification |
---|
File and Directory Entries API # dom-htmlinputelement-webkitdirectory |
Browser-Kompatibilität
BCD tables only load in the browser