在as3 AIR中重命名文件 - 如果变量中有文件的本机路径,该怎么办?


如果您

知道文件位于 applicationStorageDirectory 中,则以下代码非常适合重命名文件

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

如果您所拥有的只是字符串中文件的本机路径,如何设置 sourceFile?喜欢这个:

D:SoftwarefilestestList.db

这将引发错误:

sourceFile = sourceFile.resolvePath("D:SoftwarefilestestList.db");

这个想法是我想重命名我之前加载到 var 中的文件。我想我会提取字符串变量的本机路径,将文件变量清空(因此操作系统不会告诉我在闪存中打开文件时无法重命名),将该本机路径解析为源文件,并使用 moveTo 重命名硬盘驱动器上的文件。

欢呼看看。

编辑:

我已经设置了一个测试AIR应用程序,其中只有以下内容:

import flash.events.*;
import flash.filesystem.*;
var original = File.documentsDirectory; 
original = original.resolvePath("D:\Software\test\October.db"); 
var destination:File = File.documentsDirectory; 
destination =  destination.resolvePath("copy.db"); 
original.addEventListener(Event.COMPLETE, fileMoveCompleteHandler); 
original.addEventListener(IOErrorEvent.IO_ERROR, fileMoveIOErrorEventHandler); 
original.moveToAsync(destination); 
function fileMoveCompleteHandler(event:Event):void { 
    trace(event.target); // [object File] 
} 
function fileMoveIOErrorEventHandler(event:IOErrorEvent):void { 
    trace("I/O Error.");  
} 

此操作失败,使用 D:\Software\test\October 也是如此.db

我想我想知道的是 - 如果您已经知道完整路径,您如何做 resolvePath 的事情?

我想我想知道的是 - 如果您已经知道完整路径,您如何做 resolvePath 的事情?

你不AFAIK。如果你的路径实际上是d:\software\test\October.db你可以设置一个文件引用,如下所示:

var original:File = new File();
original.nativePath = "d:softwaretestoctober.db";

最新更新