Также обратите внимание, что наблюдатель файловой системы не надежен на долях файла. Особенно, если доля файла размещается на сервере не-Windows. FSW не должен использоваться ни для чего критического. Или должен использоваться со случайным опросом, чтобы проверить, что он ничего не пропустил.
Да, можно, с помощью FileReference. В основном это делается так:
var bytes:ByteArray = new ByteArray();
var fileRef:FileReference=new FileReference();
fileRef.save("fileContent", "fileName");
Не слишком сложно, правда? А вот видеоурок по нему:
http://www.gotoandlearn.com/play?id=76
И документация:
http://livedocs.adobe.com/flash/ 9.0 / ActionScriptLangRefV3 /
Надеюсь, что это поможет.
Кроме того, в Flex Builder 3 должны быть установлены Flash Player 10 и Flex Gumbo SDK.
Вы также можете посмотреть следующий пример: http://blog.flexexamples.com/2008/08/25/saving-files-locally-using-the-filereference-classs-save-method-in-flash-player-10/
Во Flex 3 нет, вы не можете этого сделать, если вы загружаете файл на сервер, а затем загружаете файл через URL-адрес на рабочий стол.
В Air или Flex 4 вы можете сохранить его прямо из приложения на рабочий стол, как описано выше.
Поскольку у меня была функция для вывода байтов в файл (потому что я делал что-то с растровыми изображениями), я повторно использовал ее для вывода строки, вот так:
var filename:String = "/Users/me/path/to/file.txt"; var byteArray:ByteArray = new ByteArray(); byteArray.writeUTFBytes(someString); outFile(filename, byteArray); private static function outFile(fileName:String, data:ByteArray):void { var outFile:File = File.desktopDirectory; // dest folder is desktop outFile = outFile.resolvePath(fileName); // name of file to write var outStream:FileStream = new FileStream(); // open output file stream in WRITE mode outStream.open(outFile, FileMode.WRITE); // write out the file outStream.writeBytes(data, 0, data.length); // close it outStream.close(); }