解决标准目录之外的相对路径(applicationDirectory,desktopDirectory等)

时间:2010-09-08 10:00:09

标签: air filesystems

我需要导航到相对于我的applicationDirectory的文件,但正如文档中所述:

没有“..”引用到达文件系统根目录或应用程序持久存储根目录通过该节点;它被忽略了。

但疯狂的是,如果我做了像

这样的事情
File.applicationDirectory.resolvePath("/home/myHome/");

我可以在文件系统中找到任何地方。

我的问题是: 有没有一种解决方法可以从我的applicationDirectory导航到像“../../my.cfg”这样的相对路径? (我需要读取由不同应用程序生成的配置文件)

2 个答案:

答案 0 :(得分:4)

如果您尝试访问超级用户特权文件夹,那么

在其他情况下,请尝试下一步“home / blah / blah / blah /../../ my.cfg”并再次研究http://help.adobe.com/en_US/AIR/1.5/jslr/flash/filesystem/File.html以节省导航时间。

您还有另外几种方法:创建指向您文件的链接或运行外部bash / bat脚本。

答案 1 :(得分:0)

我以前使用Eugene的答案中提到的小黑客从绝对路径复制:

var file = 'C:\Users\User1\Pictures\pic.png';
var newPath = air.File.applicationStorageDirectory.resolvePath('images/pic.png');

air.File.applicationDirectory.resolvePath('/../../../../../../../../../../' +
  file).copyTo(newPath, true);

但是,这是很多更好的方法:

var file = 'C:\Users\User1\Pictures\pic.png';
var newPath = air.File.applicationStorageDirectory.resolvePath('images/pic.png');

new air.File(file).copyTo(newPath, true);