DirectoryEntry
Cet objet représente un répertoire sur un système de fichiers, tel que défini par la spécification W3C répertoires et systèmes .
Propriétés
isFile: toujours
false
. (booléen)isDirectory: toujours
true
. (booléen)name: le nom du
DirectoryEntry
, à l'exclusion du chemin menant à celle-ci. (DOMString)fullPath: le chemin d'accès complet absolu de la racine au
DirectoryEntry
. (DOMString)
Remarque : L'attribut suivant est défini par la spécification W3C, mais n'est pas supportée :
- filesystem: le système de fichiers sur lequel le
DirectoryEntry
réside. (Système de fichiers)
Méthodes
Les méthodes suivantes peuvent être appelées sur un objet DirectoryEntry
:
getMetadata: recherche des métadonnées relatives à un répertoire.
setMetadata: définit des métadonnées sur un répertoire.
moveTo: déplace un répertoire vers un autre emplacement sur le système de fichiers.
copyTo: copie un répertoire vers un autre emplacement sur le système de fichiers.
toURL: renvoie une URL pour aider à localiser un répertoire.
remove: supprime un répertoire. Le répertoire doit être vide.
getParent: cherche le répertoire parent.
createReader: crée un nouveau
[DirectoryReader](../directoryreader/directoryreader.html)
qui peut lire les entrées d'un répertoire.getDirectory: crée ou recherche un répertoire.
getFile: crée ou recherche un fichier.
removeRecursively: supprime un répertoire et tout son contenu.
Plates-formes prises en charge
- Android
- BlackBerry WebWorks (OS 5.0 et plus)
- iOS
- Windows Phone 7 et 8
- Windows 8
getMetadata
Rechercher des métadonnées relatives à un répertoire.
Paramètres :
successCallback: une fonction de callback pour exécuter avec un objet
[Metadata](../metadata/metadata.html)
. (Fonction)errorCallback: une fonction de callback à exécuter si une erreur se produit lors de la récupération du
[Metadata](../metadata/metadata.html)
. Appelée avec un objet[FileError](../fileerror/fileerror.html)
. (Fonction)
Petit exemple
function success(metadata) {console.log ("date de modification:" + metadata.modificationTime);}
function fail(error) {alert(error.code);}
/ / Demande l'objet de métadonnées pour cette entrée entry.getMetadata (succès, échec) ;
setMetadata
Définit les attributs étendus d'un répertoire, ou les métadonnées. Ne fonctionne actuellement que sur iOS.
Paramètres :
successCallback: un callback qui s'exécute lorsque les métadonnées sont correctement définies. (Fonction)
errorCallback: un callback qui s'exécute lorsque les métadonnées ne parviennent pas à être définie. (Fonction)
metadataObject: un objet qui contient les clés et les valeurs de métadonnées. (Objet)
Petit exemple
function success() {
console.log("The metadata was successfully set.");
}
function fail() {
alert("There was an error in setting the metadata");
}
// Set the metadata
entry.setMetadata(success, fail, { "com.apple.MobileBackup": 1});
Spécificités iOS
- Seulement l'atttribut étendu
com.apple.MobileBackup
est pris en charge. Affecte la valeur1
pour empêcher que le répertoire en cours soit sauvegardé sur iCloud. Affecte la valeur `` pour ré-activer la sauvegarde du répertoire sur iCloud.
Petit exemple
function setFolderMetadata(localFileSystem, subFolder, metadataKey, metadataValue)
{
var onSetMetadataWin = function() {
console.log("success setting metadata")
}
var onSetMetadataFail = function() {
console.log("error setting metadata")
}
var onGetDirectoryWin = function(parent) {
var data = {};
data[metadataKey] = metadataValue;
parent.setMetadata(onSetMetadataWin, onSetMetadataFail, data);
}
var onGetDirectoryFail = function() {
console.log("error getting dir")
}
var onFSWin = function(fileSystem) {
fileSystem.root.getDirectory(subFolder, {create: true, exclusive: false}, onGetDirectoryWin, onGetDirectoryFail);
}
var onFSFail = function(evt) {
console.log(evt.target.error.code);
}
window.requestFileSystem(localFileSystem, 0, onFSWin, onFSFail);
}
setFolderMetadata(LocalFileSystem.PERSISTENT, "Backups", "com.apple.MobileBackup", 1);
moveTo
Déplace un répertoire vers un autre emplacement sur le système de fichiers. Une erreur se produit si l'application tente de :
déplacer un répertoire à l'intérieur de lui-même ou à n'importe quel enfant à n'importe quelle profondeur.
déplacer un répertoire dans son parent, si un nom différent de son répertoire en cours n'est pas fourni.
déplacer un répertoire vers un chemin occupé par un fichier.
déplacer un répertoire vers un chemin occupé par un répertoire qui n'est pas vide.
Déplacer un répertoire sur le dessus un répertoire vide existant tente de supprimer et de remplacer ce répertoire.
Paramètres :
parent: le répertoire parent vers laquelle déplacer le répertoire. (DirectoryEntry)
newName: le nouveau nom du répertoire. Par défaut, le nom actuel si non spécifié. (DOMString)
successCallback: une fonction de rappel qui s'exécute avec le
DirectoryEntry
objet pour le nouveau répertoire. (Fonction)errorCallback: un rappel qui s'exécute si une erreur se produit lorsque vous tentez de déplacer le répertoire. Appelée avec un
[FileError](../fileerror/fileerror.html)
objet. (Fonction)
Petit exemple
function success(entry) {
console.log("New Path: " + entry.fullPath);
}
function fail(error) {
alert(error.code);
}
function moveDir(entry) {
var parent = document.getElementById('parent').value,
parentName = parent.substring(parent.lastIndexOf('/')+1),
newName = document.getElementById('newName').value,
parentEntry = new DirectoryEntry(parentName, parent);
// move the directory to a new directory and rename it
entry.moveTo(parentEntry, newName, success, fail);
}
copyTo
Copier un répertoire vers un autre emplacement sur le système de fichiers. Une erreur se produit si l'application tente de :
copier un répertoire à l'intérieur de lui-même à toute profondeur.
copier un répertoire dans sa société mère, si un nom différent de son répertoire en cours n'est pas fourni.
Répertoire des copies sont toujours récursifs et copiez tout le contenu du répertoire.
Paramètres :
parent: le répertoire parent dans lequel copier le répertoire. (DirectoryEntry)
newName: le nouveau nom du répertoire. Par défaut, le nom actuel si non spécifié. (DOMString)
successCallback: une fonction de rappel qui s'exécute avec le
DirectoryEntry
objet pour le nouveau répertoire. (Fonction)errorCallback: un rappel qui s'exécute si une erreur se produit lorsque vous tentez de copier l'annuaire sous-jacent. Appelée avec un
[FileError](../fileerror/fileerror.html)
objet. (Fonction)
Petit exemple
function win(entry) {
console.log("New Path: " + entry.fullPath);
}
function fail(error) {
alert(error.code);
}
function copyDir(entry) {
var parent = document.getElementById('parent').value,
parentName = parent.substring(parent.lastIndexOf('/')+1),
newName = document.getElementById('newName').value,
parentEntry = new DirectoryEntry(parentName, parent);
// copy the directory to a new directory and rename it
entry.copyTo(parentEntry, newName, success, fail);
}
toURL
Retourne une URL qui peut être utilisée pour localiser le répertoire.
Petit exemple
// Get the URL for this directory
var dirURL = entry.toURL();
console.log(dirURL);
supprimer
Supprime un répertoire. Une erreur se produit si l'application tente de :
supprimer un répertoire qui n'est pas vide.
Supprimez le répertoire racine du système de fichiers.
Paramètres :
successCallback: une fonction de rappel qui s'exécute après que le répertoire est supprimé. Appelé sans paramètre. (Fonction)
errorCallback: un rappel qui s'exécute si une erreur se produit lorsque vous tentez de supprimer le répertoire. Appelée avec un
[FileError](../fileerror/fileerror.html)
objet. (Fonction)
Petit exemple
function success(entry) {console.log ("l'enlèvement a réussi");}
function fail(error) {alert ("erreur de suppression de répertoire: ' + error.code);}
/ / supprimer ce répertoire entry.remove (succès, échec) ;
getParent
Rechercher le parent DirectoryEntry
contenant le répertoire.
Paramètres :
successCallback: un rappel passé parent du répertoire
DirectoryEntry
. (Fonction)errorCallback: un rappel qui s'exécute si une erreur se produit lorsque vous tentez de récupérer le parent
DirectoryEntry
. Appelée avec un[FileError](../fileerror/fileerror.html)
objet. (Fonction)
Petit exemple
function success(parent) {
console.log("Parent Name: " + parent.name);
}
function fail(error) {
alert('Failed to get parent directory: ' + error.code);
}
// Get the parent DirectoryEntry
entry.getParent(success, fail);
createReader
Crée une nouvelle DirectoryReader pour lire le contenu d'un répertoire.
Petit exemple
// create a directory reader
var directoryReader = entry.createReader();
getDirectory
Crée ou lève les yeux un répertoire existant. Une erreur se produit si l'application tente de :
- Créez un répertoire dont le parent immédiat n'existe pas encore.
Paramètres :
chemin d'accès: le chemin vers le répertoire leva ou créé. Un chemin absolu ou un chemin d'accès relatif de cette
DirectoryEntry
. (DOMString)options: Options pour spécifier si le répertoire est créé s'il n'existe pas. (Drapeaux)
successCallback: une fonction de rappel qui s'exécute avec un
DirectoryEntry
objet. (Fonction)errorCallback: un rappel qui s'exécute si une erreur se produit lorsque vous créez ou en levant le répertoire. Appelée avec un
[FileError](../fileerror/fileerror.html)
objet. (Fonction)
Petit exemple
function success(dirEntry) {console.log ("nom du répertoire:" + dirEntry.name);}
function fail(error) {alert ("Impossible de créer le nouveau répertoire:" + error.code);}
/ / Récupérer un répertoire existant, ou créer si elle n'existe pas déjà entry.getDirectory (« Nouveau_répertoire », {créer : true, exclusif : false}, succès, échec) ;
getFile
Crée ou lève les yeux un fichier. Une erreur se produit si l'application tente de :
- Créez un fichier dont le parent immédiat n'existe pas encore.
Paramètres :
chemin d'accès: le chemin d'accès au fichier pour être levé ou créé. Un chemin absolu ou un chemin d'accès relatif de cette
DirectoryEntry
. (DOMString)options: Options pour spécifier si le fichier est créé s'il n'existe pas. (Drapeaux)
successCallback: un rappel passé un
[FileEntry](../fileentry/fileentry.html)
objet. (Fonction)errorCallback: un rappel qui s'exécute si une erreur se produit lorsque vous créez ou en levant le fichier. Appelée avec un
[FileError](../fileerror/fileerror.html)
objet. (Fonction)
Petit exemple
function success(fileEntry) {console.log ("nom de fichier:" + fileEntry.name);}
function fail(error) {alert ("Impossible de récupérer le fichier:" + error.code);}
/ / Récupérer un fichier existant, ou créer si elle n'existe pas de entry.getFile (« newFile.txt », {créer : vrai, exclusif : false}, succès, échec) ;
removeRecursively
Supprime un répertoire et tout son contenu. En cas d'erreur (par exemple en essayant de supprimer un répertoire contenant un fichier qui ne peut pas être supprimé), une partie du contenu du répertoire peuvent être supprimées. Une erreur se produit si l'application tente de :
- Supprimez le répertoire racine du système de fichiers.
Paramètres :
successCallback: un rappel qui s'exécute après le
DirectoryEntry
a été supprimé. Appelé sans paramètre. (Fonction)errorCallback: un rappel qui s'exécute si une erreur se produit lorsque vous tentez de supprimer le
DirectoryEntry
. Appelée avec un[FileError](../fileerror/fileerror.html)
objet. (Fonction)
Petit exemple
function success(parent) {
console.log("Remove Recursively Succeeded");
}
function fail(error) {
alert("Failed to remove directory or it's contents: " + error.code);
}
// remove the directory and all it's contents
entry.removeRecursively(success, fail);
Bizarreries de blackBerry
Peut échouer avec un ControlledAccessException
dans les cas suivants :
- Une application tente d'accéder à un répertoire créé par une installation précédente de l'application.
Solution : Vérifiez les répertoires temporaires sont nettoyés manuellement, ou par l'application avant la réinstallation.
- Si le périphérique est connecté par USB.
Solution : déconnecter le câble USB de l'appareil et exécutez à nouveau.