2015-08-25 4 views
0

Я пытаюсь позволить пользователю выбрать каталог, а затем записать файлы в этот каталог.Как записать файлы в определенный каталог?

У меня есть этот код, который позволяет пользователю просматривать для каталога:

var file:flash.filesystem.File = new flash.filesystem.File(); 
file.browseForDirectory("Select a directory"); 
file.addEventListener(Event.SELECT, selectHandler); 

protected function selectHandler(event:Event):void { 
    // these contain the path where I want to save files to 
    Object(fileReference).url; 
    Object(fileReference).nativePath; 
    // how do I create a file in that directory? 
} 

Как создать файл в каталоге, который пользователь выбирает?

+0

Какой тип файла вы хотите создать? –

+0

HTML или XML-файл. Это XML.toXMLString() –

+1

Является ли это флеш-сайтом или AIR? Я должен предположить, что это AIR, потому что вы используете класс 'File'. В этом случае вы можете использовать [FileStream Class] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/FileStream.html) и, более конкретно, 'writeUTFBytes()' функция этого класса (или 'writeUTF()'? Я всегда получаю два путаных). – DodgerThud

ответ

3

Ваш код обработчика выбора не выглядит правильным. Вы должны получить ссылку на папку, которая является объектом типа File, выполнив event.currentTarget, а не Object или fileReference.

Далее вы можете создать файл с помощью класса FileStream. Ваш selectHandler код должен выглядеть следующим образом:

protected function selectHandler(event:Event):void 
{ 
    var targetDirectory:File = event.currentTarget as File; 
    var file:File = targetDirectory.resolvePath("htmlFile.html"); 
    var stream:FileStream = new FileStream(); 
    stream.open(file, FileMode.WRITE); 
    stream.writeUTFBytes("Any Text you want to create"); 
    stream.close(); 
} 

будет работать в проектах AIR.

Надеюсь, это ответит на ваш вопрос.