File 类包括两个用于复制文件或目录的方法:
copyTo()
和
copyToAsync()
。File 类包括两个用于移动文件或目录的方法:
moveTo()
和
moveToAsync()
。
copyTo()
和
moveTo()
方法以同步方式运行,
copyToAsync()
和
moveToAsync()
方法以异步方式运行(请参阅
AIR 文件基础知识
)。
若要复制或移动文件,请设置两个 File 对象。一个对象指向要复制或移动的文件,它是调用复制或移动方法的对象;另一个对象指向目标(结果)路径。
以下代码将 test.txt 文件从用户的文档目录的 AIR Test 子目录复制到同一目录中名为 copy.txt 的文件:
var original = air.File.documentsDirectory.resolvePath("AIR Test/test.txt");
var newFile = air.File.documentsDirectory.resolvePath("AIR Test/copy.txt");
original.copyTo(newFile, true);
在此例中,
copyTo()
方法的
overwrite
参数(第二个参数)的值设置为
true
。通过将
overwrite
设置为
true
,可以覆盖现有目标文件。此参数是可选的。如果您将它设置为
false
(默认值),则当目标文件存在时该操作调度一个 IOErrorEvent 事件(文件没有复制)。
复制和移动方法的“异步”版本以异步方式运行。使用
addEventListener()
方法可以监视任务是否完成或错误条件,如以下代码中所示:
var original = air.File.documentsDirectory;
original = original.resolvePath("AIR Test/test.txt");
var destination = air.File.documentsDirectory;
destination = destination.resolvePath("AIR Test 2/copy.txt");
original.addEventListener(air.Event.COMPLETE, fileMoveCompleteHandler);
original.addEventListener(air.IOErrorEvent.IO_ERROR, fileMoveIOErrorEventHandler);
original.moveToAsync(destination);
function fileMoveCompleteHandler(event){
alert(event.target); // [object File]
}
function fileMoveIOErrorEventHandler(event) {
alert("I/O Error.");
}
File 类还包括
File.moveToTrash()
和
File.moveToTrashAsync()
方法,它们将文件或目录移到系统垃圾桶。