Ok, je pense que je me rapproche, consultez cette solution! :)
private var CheckDelay:Timer = new Timer(5000, 0);
private function InitApp():void
{
CheckDelay.addEventListener(TimerEvent.Timer, CheckForNewFiles, false, 0, true);
CheckDelay.start();
}
private function CheckForNewFiles(event:TimerEvent):void
{
var FS:FileStream = new FileStream();
var Buffer:File = File.applicationStorageDirectory.resolvePath("FilesBuffer.cmd");
FS.open(Buffer, FileMode.Write);
FS.writeUTFBytes("cd " + File.desktopDirectory.nativePath + "\r\n" +
"dir /on /b > " + File.applicationStorageDirectory.resolvePath("FileList.txt").nativePath);
FS.close();
var Process:NativeProcess = new NativeProcess();
var NPI:NativeProcessStartupInfo = NativeProcessStartupInfo(); // What a large name! xD
NPI.executable = Buffer;
Process.start(NPI);
Process..addEventListener(NativeProcessExitEvent.EXIT, ReadFileList, false, 0, true);
}
private function ReadFileList(event:Event):void
{
var FS:FileStream = new FileStream();
var Buffer:File = File.applicationStorageDirectory.resolvePath("FilesBuffer.cmd");
FS.open(Buffer, FileMode.Read);
var FileData:String = FS.readUTFBytes(FS.bytesAvailable);
FS.close();
var FileArray:Array = FileData.split("\r\n");
var TempArray:ArrayCollection = new ArrayColletion();
var TempFile:File;
for(var i:int = 0;i<FileArray.length;i++){
TempFile = new File(FileArray[i]);
TempArray.addItem(TempFile);
}
}
A la fin nous avons eu un tableau (TempArray) que nous pourrions utiliser sur une grille de données (par exemple) avec comme colums: "extension, nom de fichier, CheminFichier, etc .."
Les fichiers sont mis à jour toutes les 5 secondes.
Et, pourquoi nous utilisons tout ce code au lieu d'un simple "File.getDirectoryListing()"? Parce que nous mettons à jour notre application toutes les 5 secondes, si pourquoi utiliser getDirectoryListing(), notre application prendra beaucoup plus de RAM et aussi, la commande cmd est beaucoup plus rapide ... :)
Si vous avez une meilleure idée, s'il vous plaît partagez-le avec nous! Je vous remercie! : D
Je ne peux pas trouver de solution avec AIR seul - vous devez utiliser un processus natif. – Amarghosh
Si vous êtes intéressé uniquement par un dossier particulier, vous pouvez vérifier ce dossier toutes les n secondes en utilisant une minuterie et faire ce que vous voulez. – Amarghosh
J'ai posté un code qui peut faire ce que vous dites Amargosh, vérifiez-le! ;). Quoi qu'il en soit, la solution que je viens de publier récupère toujours tous les fichiers sur un dossier spécifique. L'idée est de récupérer uniquement les fichiers qui ont été ajoutés. Merci pour votre commentaire :) –