我有这个非常奇怪的问题。我有一个登录AIR应用程序的过程。当我在Flash CS5.5中运行它时,我可以成功打开日志文件并进行修改。当我使用AIR 2.6发布应用程序(尝试过swf,exe和OS-X应用程序)时,应用程序在我第一次尝试访问日志文件时冻结。我使用的代码如下:
public function log(action:String)
{
var file:File ;
var time:Date ;
var time_str:String ;
time = new Date();
time_str = time.getFullYear()+"-"+(time.getMonth()+1)+"-"+time.getDate();
try {
file = File.documentsDirectory.resolvePath( "IdeasMappingData/" +time_str + "_" + "log.txt" );
var stream:FileStream = new FileStream()
stream.open(file, FileMode.APPEND);
time_str += "\t"+time.getHours()+":"+time.getMinutes();
trace(time_str+"\t"+action);
stream.writeUTFBytes(time_str+"\t"+action+"\n");
stream.close();
} catch (error:IOError) {
trace("The stream could not be accessed for logging.");
}
}
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
尝试
file = new File( File.documentsDirectory.resolvePath( "IdeasMappingData/" +time_str + "_" + "log.txt" ).nativePath ) ;
而不是
file = File.documentsDirectory.resolvePath( "IdeasMappingData/" +time_str + "_" + "log.txt" );
当您直接使用解决路径
时,Air会有一些奇怪的安全方法