2

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

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。

4

1 回答 1

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);
}
于 2013-03-02T16:11:04.513 回答