Как вы можете удалить файл в каталоге приложения? - PullRequest
0 голосов
/ 19 ноября 2009

Мы записываем файлы журнала в File.applicationDirectory и хотим очистить старые файлы журнала. Вопрос в том, как вы удаляете файлы из этого каталога? Когда я пытаюсь удалить старые файлы журнала из этого каталога, это дает исключение безопасности. Есть ли что-нибудь вокруг этого?

Я знаю, что вы не должны писать в File.applicationDirectory, но мы в любом случае пишем там логи. Поэтому, пожалуйста, не говорите, не делайте этого!

Спасибо

Ryan

Ответы [ 3 ]

2 голосов
/ 12 октября 2012

Еще один трюк, для обхода безопасности

var fileLoc:File= File.applicationDirectory.resolvePath("some.log");
var file:File=new File(fileLoc.nativePath);
fileStream.open(file,FileMode.WRITE);

Второй объект файла может изменить файл без каких-либо проблем.

1 голос
/ 19 ноября 2009

Я нашел ответ вскоре после публикации. Я искал в FileTarget, как они записывают файл журнала в каталог приложения, и нашел этот драгоценный камень:

        var logFile:File = this._logDirectory.resolvePath(filename);
        logFile = new File(logFile.nativePath); // Hack to get around SecurityError if log directory exists within the application directory

Таким образом, вы просто указываете полный собственный путь, а не относительный путь из каталога приложения, и вы можете делать все что угодно. Интересная модель безопасности!

1 голос
/ 19 ноября 2009

File.applicationDirectory является каталогом только для чтения.

http://livedocs.adobe.com/flex/3/langref/flash/filesystem/File.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...