У меня есть строковый массив, где каждый объект имеет разделенные запятыми и новые разделители строк. Теперь я хочу записать эти строковые объекты в несколько файлов CSV. Но я могу написать только один CSV файл, как показано ниже: -Как написать несколько файлов с помощью adobe flex
/**
* callback method for exportCollection, results are in format of Map<String, String>
**/
protected function exportListResultHandler(event:ResultEvent):void {
if (event.result != null)
{
for (var key:* in event.result) {
var value:String=event.result[key];
var fileName:String=key;
exportStringToFile(value.toString(), fileName);
}
}
}
private function exportStringToFile(stringToExport:String, filename:String=null):void
{
//file refernce for import/export functionality.
var fileRef:FileReference = new FileReference();
try{
fileRef.addEventListener(Event.COMPLETE, finishUpload);
fileRef.addEventListener(IOErrorEvent.IO_ERROR, handleError);
fileRef.save(stringToExport, filename);
}catch (error:Error){
logger.error("Unable to save file. Error: ", error);
}
Mine существующие коды не позволяют мне использовать класс File из пакета flash.filesystem. Даже массивы FileReference не помогли мне. Я хочу сохранить несколько файлов в одном месте.
Я новичок в Adobe flex и Flash-строителе. Любая помощь будет отличной. Спасибо a
Ваш код выглядит хорошо, я думаю - если бы иметь несколько ключей в ваш результат, он должен сохранить несколько файлов. Так что же не работает? Вы пытались отладить и посмотреть, есть ли у вас несколько разных ключей в вашем результате? – Philarmon
Kishore, браузерное приложение не может просто сохранить сразу несколько файлов из соображений безопасности. Конечный пользователь должен выбрать «сохранить» для каждого файла с помощью всплывающего диалогового окна. Это ваш вариант, или, как было предложено, сделать zip-файл. Также почему не 'var value: String = String (event.result [key]);'? Попробуйте использовать 'trace' в обеих функциях, чтобы проверить, проходит ли больше одной записи. –