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」というファイル名をコピーしようとすると、コピーの名前は「test.snd」ではなく「Kalimba.snd」になります。問題は、コピー後、ターゲット ファイルへの参照が、nativePath存在しない「test.snd」に固執するため、何にもつながらないことです。

Flex 4.6 で AIR 3.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 に答える