File.copyTo保留旧文件名

时间:2013-03-02 15:04:41

标签: actionscript-3 flex air

我尝试使用以下代码将所选文件复制到存储目录:

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。

1 个答案:

答案 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);
}