IO_Error открытие файла с помощью приложения Adobe Air на компьютере Mac

#actionscript-3 #air

#actionscript-3 #air

Вопрос:

У меня есть приложение Adobe Air, которое открывает CSV-файл на Mac. Я получаю сообщение об ошибке, которое я не получаю с тем же приложением для Windows, поэтому я думаю, что что-то о расположении файлов и т.д. Не так. Вот код:

 var file: File = File.applicationStorageDirectory;

file = file.resolvePath("Aamp;P plans");

file.addEventListener(FileListEvent.SELECT_MULTIPLE, filesSelected);

function filesSelected(event: FileListEvent): void {
  
   //trace(event.files.length);
 
   fileList = new Array();
   fileNames = new Array();
      
   for (var i: uint = 0; i < event.files.length; i  ) {
        fileList.push(event.files[i].nativePath);
        trace("name of file loaded is ", event.files[i].name, "where :", event.files[i].nativePath);
   }
}

var urlRequest: URLRequest = new URLRequest(fileList[0]);

function openCSVFile():void{

  csv = new CSV(urlRequest);
  csv.addEventListener(Event.COMPLETE,onComplete);
  csv.addEventListener(IOErrorEvent.IO_ERROR, onErrorOpening);

  function onComplete(event:Event):void{
     trace("file open successful");
  }

  function onErrorOpening(event:IOErrorEvent):void{
    trace ("error opening file");
  }
}
  

Трассировка URLRequest показывает местоположение, где оно должно быть, поэтому приложение знает, где искать, и оно действительно находит файл. Вот результат трассировки:/Applications/MyApp.app/Contents/Resources/A amp; P plans /majors/NationalLeague.csv. Тем не менее, вместо completeEvent, отображающего трассировку, инициализируется событие ошибки. Есть идеи, где искать проблему? В имени файла нет никаких странных символов или чего-либо еще. Отслеживание ошибки показывает следующее: Ошибка # 2032: Ошибка потока. Спасибо

Комментарии:

1. Попробуйте использовать событие. файлы [i].url вместо события. files[i].nativePath . Кроме того, вы формируете свой экземпляр URLRequest ДО того, как диалоговое окно выбора выдаст вам какой-либо результат, что, очевидно, неверно. Кроме того, не определяйте функции внутри функций.

2. @Organis согласился, но они были помещены для иллюстрации проблемы, с которой я столкнулся. Спасибо за отзыв. Событие замены. файлы [i].Собственный путь с событием. файлы [i].url сделали свое дело. Спасибо

Ответ №1:

Вполне возможно, что с амперсандом и пробелом в «Планах A amp; P» могут возникнуть проблемы.

Попробуйте удалить / изменить их.

Комментарии:

1. Большое вам спасибо. Я все равно удалил их для пущей убедительности. Замена nativePath на URL сделала свое дело