Можно ли загрузить локальный файл, не прося пользователя сначала просмотреть его в приложении AIR? - PullRequest
0 голосов
/ 22 июля 2011

Я пишу небольшое приложение для себя, и вместо использования базы данных я бы хотел просто использовать Excel для хранения небольшого количества данных, которые у меня есть в моей локальной файловой системе. Я хочу иметь возможность загружать эти данные без необходимости использовать типичный метод FileReference browse(), поскольку это будет раздражать каждый раз, когда я использую приложение.

Код ниже, похоже, находит файл в порядке, как метод file.exists ниже, и большинство других атрибутов кажутся правильными, но file.data всегда нулевой.

Я предполагаю, что это проблема безопасности, и именно поэтому я сталкиваюсь с этой проблемой, но я подумал, что хотел бы спросить и посмотреть, есть ли на самом деле способ обойти эту проблему.

var file:File = new File(fullPath + "\\" + currentFolder + ".txt");
if(file.exists) {
     var byteArray:ByteArray = file.data;
}

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Если вы хотите прочитать содержимое файла, используйте следующий код:

var stream:FileStream = new FileStream();
stream.open("some path here", FileMode.READ);
var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
trace(fileData);

Свойство data унаследовано от класса FileReference и будет заполнено только после вызова загрузки (см. Это ссылка ).

3 голосов
/ 22 июля 2011

Вы близки, вам просто нужно объединить это с объектом FileStream

var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var str:String = fileStream.readMultiByte(file.size, File.systemCharset);
trace(str);

подробнее здесь

...