Le moteur d’exécution vous permet de manipuler les répertoires du système de fichiers local.
Pour plus de détails sur la création d’objets File qui pointent vers des répertoires, voir la section
Pointage d’un objet File vers un répertoire
.
Création de répertoires
La méthode
File.createDirectory()
permet de créer un répertoire. Par exemple, le code suivant crée le répertoire AIR Test en tant que sous-répertoire du répertoire d’accueil de l’utilisateur :
var dir:File = File.userDirectory.resolvePath("AIR Test");
dir.createDirectory();
Si le répertoire existe, la méthode
createDirectory()
n’agit pas.
Par ailleurs, dans certains modes, un objet FileStream crée des répertoires à l’ouverture des fichiers. Les répertoires qui n’existent pas sont créés lorsque vous instanciez une occurrence de FileStream en définissant le paramètre
fileMode
du constructeur
FileStream()
sur
FileMode.APPEND
ou
FileMode.WRITE
. Pour plus d’informations, voir la section
Flux de travail pour la lecture et l’écriture de fichiers
.
Création d’un répertoire temporaire
La classe File comprend la méthode
createTempDirectory()
, qui crée un répertoire dans le répertoire temporaire système, comme l’illustre l’exemple suivant :
var temp:File = File.createTempDirectory();
La méthode
createTempDirectory()
crée automatiquement un répertoire temporaire unique (ce qui vous évite d’avoir à déterminer un nouvel emplacement unique).
Vous pouvez utiliser un répertoire temporaire pour stocker provisoirement des fichiers temporaires utilisés au cours d’une session de l’application. Vous remarquerez que la méthode
createTempFile()
permet de créer des fichiers temporaires uniques dans le répertoire temporaire système.
Vous pouvez éventuellement supprimer le répertoire temporaire avant de fermer l’application, car cette opération n’est
pas
automatiquement effectuée sur tous les périphériques.
Enumération de répertoires
Les méthodes
getDirectoryListing()
ou
getDirectoryListingAsync()
d’un objet File permettent d’obtenir un tableau d’objets File pointant vers les fichiers et sous-répertoires d’un répertoire.
Par exemple, le code suivant répertorie le contenu du répertoire de documents de l’utilisateur (sans examiner les sous-répertoires) :
var directory:File = File.documentsDirectory;
var contents:Array = directory.getDirectoryListing();
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
Lorsque vous utilisez la version asynchrone de la méthode, l’objet événement
directoryListing
possède la propriété
files
, qui consiste en un tableau d’objets File appartenant aux répertoires :
var directory:File = File.documentsDirectory;
directory.getDirectoryListingAsync();
directory.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListHandler);
function dirListHandler(event:FileListEvent):void
{
var contents:Array = event.files;
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
}
Copie et déplacement de répertoires
Vous pouvez copier ou déplacer un répertoire, en utilisant les mêmes méthodes que pour un fichier. Par exemple, le code suivant copie un répertoire en mode synchrone :
var sourceDir:File = File.documentsDirectory.resolvePath("AIR Test");
var resultDir:File = File.documentsDirectory.resolvePath("AIR Test Copy");
sourceDir.copyTo(resultDir);
Lorsque vous définissez le paramètre
overwrite
de la méthode
copyTo()
sur true, tous les fichiers et dossiers d’un répertoire cible existant sont supprimés et remplacés par les fichiers et dossiers du répertoire source (même si le fichier cible n’existe pas dans le répertoire source).
Le répertoire sur lequel vous définissez le paramètre
newLocation
de la méthode
copyTo()
spécifie le chemin d’accès au répertoire résultant, et
non
le répertoire
parent
qui contiendra le répertoire résultant.
Pour plus d’informations, voir la section
Copie et déplacement de fichiers
.
Suppression du contenu d’un répertoire
La classe File comprend les méthodes
deleteDirectory()
et
deleteDirectoryAsync()
. Ces méthodes suppriment des répertoires. La première s’exécute en mode synchrone et la seconde en mode asynchrone (voir la section
Principes de base des classes File d’AIR
). Elles comprennent toutes deux le paramètre
deleteDirectoryContents
(qui accepte une valeur booléenne). Lorsque ce paramètre est défini sur
true
(la valeur par défaut correspond à
false
), l’appel de la méthode supprime les répertoires non vides ; sinon, seuls les répertoires vides sont supprimés.
Par exemple, le code suivant supprime en mode synchrone le sous-répertoire AIR Test du répertoire de documents de l’utilisateur :
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.deleteDirectory(true);
Le code suivant supprime en mode asynchrone le sous-répertoire AIR Test du répertoire de documents de l’utilisateur :
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.addEventListener(Event.COMPLETE, completeHandler)
directory.deleteDirectoryAsync(true);
function completeHandler(event:Event):void {
trace("Deleted.")
}
Vous disposez également des méthodes
moveToTrash()
et
moveToTrashAsync()
, qui permettent de déplacer un répertoire vers la corbeille système. Pour plus d’informations, voir la section
Déplacement d’un fichier vers la corbeille
.
|
|
|