File的nativePath和url再深一层的应用以及理解


前段时间写过 一篇日志 ,有提过mac下air的一个api:File.url。
打那次之后,我操作到文件url时全部都用url这个属性,不过最近发现一个问题

当对file进行写的操作的时候,如果用url会出现一个安全策略问题,其代码如下:

var file:File = File.applicationDirectory.resolvePath(PConst.CONFIG_URL)

var fs:FileStream = new FileStream();

fs.open(file, FileMode.WRITE);

fs.position = 0;

fs.writeUTFBytes(PModelLocator.getInstance().configXml.toString());

fs.close();


上述问题代码是修改一个于安装目录下的config.xml,可是却抛出了一个错误:

SecurityError: fileWriteResource

at flash.filesystem::FileStream/open()


百度了一下,找到问题了,原来需要用到file的nativePath,问题解决,代码如下:

var file:File = new File(File.applicationDirectory.resolvePath(PConst.CONFIG_URL).nativePath) 

var fs:FileStream = new FileStream();

fs.open(file, FileMode.WRITE);

fs.position = 0;

fs.writeUTFBytes(PModelLocator.getInstance().configXml.toString());

fs.close();


原因很简单,要用本地相对路径来操作安装目录下的文件,不能用绝对路径,看来mac上的nativePath不是全没用的。


BTW:

这个安全问题之前自己摸索了一下,一直找不到原因,于是想出了一个办法,把配置文件再拷贝一份到文稿目录下(windows则为我的文件)!

具体做法为:加载配置文件时,先判断一下文稿下面有没有这个配置文件,有则加载,反之,则load安装目录下面的默认配置文件,再写一个到文稿下面,以后的修改配置文件操作都是对文稿上的进行操作。

缺点:没有什么大缺点,代码多几行,文稿目录下多一个配置文件

优点:不对默认的配置文件进行修改,有一个默认的配置,如果想还原默认配置,可以删除文稿下面的配置文件



转载http://blog.163.com/sylar_lin/blog/static/19233209320119834552697/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值