我们正在将日志文件写入File.applicationDirectory,并希望清除旧的日志文件。问题是如何从该目录中删除文件?当我尝试从该目录中删除旧的日志文件时,它会给出安全性异常。反正有吗?
我知道你不应该写File.applicationDirectory,但我们正在写的是那里的日志。所以请不要只是说不要那样做!
谢谢,
赖安
答案 0 :(得分:2)
安全解决方法的另一个技巧
var fileLoc:File= File.applicationDirectory.resolvePath("some.log");
var file:File=new File(fileLoc.nativePath);
fileStream.open(file,FileMode.WRITE);
第二个文件对象可以改变文件,没有任何问题。
答案 1 :(得分:1)
File.applicationDirectory是一个只读目录。
http://livedocs.adobe.com/flex/3/langref/flash/filesystem/File.html
答案 2 :(得分:1)
我发布后不久就找到了答案。我在FileTarget中查看他们如何将日志文件写入应用程序目录并找到了这个gem:
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
因此,您只需指定完整的本机路径,而不是应用程序目录中的相对路径,您可以执行任何操作。有趣的安全模型!