写入发布AIR应用程序后无法正常工作的文件

时间:2014-01-08 22:14:55

标签: actionscript-3 flash air filestream

我有这个非常奇怪的问题。我有一个登录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.");
    }
}

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

尝试

file = new File( File.documentsDirectory.resolvePath( "IdeasMappingData/" +time_str + "_" + "log.txt" ).nativePath ) ;

而不是

file = File.documentsDirectory.resolvePath( "IdeasMappingData/" +time_str + "_" + "log.txt" );

当您直接使用解决路径

时,Air会有一些奇怪的安全方法