我尝试使用以下代码将所选文件复制到存储目录:
private function onAddFileClick():void
{
m__file = new File();
m__file.addEventListener(Event.SELECT, onFileSelect);
m__file.browseForOpen("Select a sound", [c__filter]);
}
private function onFileSelect(e:Event):void
{
var l__target:File = File.applicationStorageDirectory.resolvePath("test.snd");
m__file.copyTo(l__target, true);
}
副本有效但目标文件的名称保留原始文件的名称。如果我尝试复制文件名" Kalimba.mp3",该副本将命名为" Kalimba.snd"而不是" test.snd"正如所料。问题是,在复制之后,我对目标文件的引用不会导致任何事情,因为它nativePath
坚持" test.snd"哪个不存在。
我使用AIR 3.6和Flex 4.6。
答案 0 :(得分:1)
使用File.moveTo()
重命名。
首先复制然后使用moveTo()重命名它。除非只是移动它会为你做!显然;)
所以复制之后:
var sourceFile:File = File.applicationStorageDirectory;
sourceFile = sourceFile.resolvePath("Kalimba.snd");
var destination:File = File.applicationStorageDirectory;
destination = destination.resolvePath("test.snd");
try
{
sourceFile.moveTo(destination, true);
}
catch (error:Error)
{
trace("Error:" + error.message);
}