window.runtime 属性window.runtime.flash.filesystem.File
继承File Inheritance FileReference Inheritance EventDispatcher Inheritance Object
运行时版本:  1.0

File 对象表示文件或目录的路径。这可以是现有的文件或目录,也可以是尚不存在的文件或目录(例如,它可以表示希望创建的文件或目录的路径)。

File 类具有许多属性和方法,用于获取有关文件系统的信息和用于执行各种操作(如复制文件和目录)。

可以与 FileStream 类一起使用 File 对象来读取和写入文件。

File 类扩展 FileReference 类。Flash® Player 和 Adobe® AIR® 都提供了 FileReference 类,它表示指向文件的指针,但 File 类添加了一些由于安全原因,不在 Flash Player 中(在浏览器中运行的 SWF 中)公开的属性和方法。

File 类包含一些静态属性,供引用常用目录位置。这些静态属性包括:

这些属性的值在不同操作系统中均有意义。例如,在 Mac OS、Linux 和 Windows 上,用户桌面目录的本机路径各不相同。但是,File.desktopDirectory 属性在其中每个平台上,都会指向正确的桌面目录路径。要编写可以跨平台正常工作的应用程序,在需要引用应用程序使用的其它文件时,请以这些属性为基础,然后使用 resolvePath() 方法来完善路径。例如,此代码会指向应用程序存储目录中的 preferences.xml 文件:

 var prefsFile = air.File.applicationStorageDirectory;
  prefsFile = prefsFile.resolvePath("preferences.xml");

如果引用文件时,使用了文本常量形式的本机路径,它将只在一个平台上有效。例如,下面的 File 对象仅在 Windows 上有效:

new air.File("C:\Documents and Settings\joe\My Documents\test.txt")

应用程序存储目录非常有用。它为 AIR 应用程序提供了专用存储目录。此存储目录由 File.applicationStorageDirectory 属性定义。

不要在应用程序目录(AIR 应用程序的安装位置)中添加或删除内容。否则会损坏 AIR 应用程序,应用程序签名也将失效。AIR 默认不允许写入应用程序目录,因为该目录并非对所有操作系统上的所有用户帐户均为可写目录。应用程序存储目录用于写入内部应用程序文件。文档目录用于写入用户希望能在应用程序之外使用的文件,如已编辑的图片或文本文件。

另请参见

FileStream


属性
 属性定义方
  applicationDirectory : File
[静态] [只读 (read-only)] 包含应用程序已安装文件的文件夹。
File
  applicationStorageDirectory : File
[静态] [只读 (read-only)] 应用程序的专用存储目录。
File
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 InheritedcreationDate : Date
[只读 (read-only)] 本地磁盘上文件的创建日期。
FileReference
 Inheritedcreator : String
[只读 (read-only)] 文件的 Macintosh 创建者类型,此类型仅用于 Mac OS X 之前的 Mac OS 版本中。
FileReference
 Inheriteddata : ByteArray
[只读 (read-only)] 成功调用 load() 方法之后代表所加载文件中的数据的 ByteArray 对象。
FileReference
  desktopDirectory : File
[静态] [只读 (read-only)] 用户桌面目录。
File
  documentsDirectory : File
[静态] [只读 (read-only)] 用户文档目录。
File
  exists : Boolean
[只读 (read-only)] 指示引用的文件或目录是否存在。
File
 Inheritedextension : String
[只读 (read-only)] 文件扩展名。
FileReference
  icon : Icon
[只读 (read-only)] 包含为文件定义的图标的 Icon 对象。
File
  isDirectory : Boolean
[只读 (read-only)] 指示是否为对目录的引用。
File
  isHidden : Boolean
[只读 (read-only)] 指示引用的文件或目录是否为“隐藏”。如果引用的文件或目录是隐藏的,则该值为 true;否则为 false。
File
  isPackage : Boolean
[只读 (read-only)] 指示引用的目录是否为包。
File
  isSymbolicLink : Boolean
[只读 (read-only)] 指示引用是否为符号链接。
File
  lineEnding : String
[静态] [只读 (read-only)] 主机操作系统使用的行结束字符序列。
File
 InheritedmodificationDate : Date
[只读 (read-only)] 本地磁盘上文件的上一次修改日期。
FileReference
 Inheritedname : String
[只读 (read-only)] 本地磁盘上的文件的名称。
FileReference
  nativePath : String
采用主机操作系统表示形式的完整路径。
File
  parent : File
[只读 (read-only)] 包含此 File 对象引用的文件或目录的目录。
File
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  separator : String
[静态] [只读 (read-only)] 主机操作系统的路径组件分隔符。
File
 Inheritedsize : Number
[只读 (read-only)] 本地磁盘上文件的大小(以字节为单位)。
FileReference
  spaceAvailable : Number
[只读 (read-only)] 可用于在此 File 位置使用的空间,以字节为单位。
File
  systemCharset : String
[静态] [只读 (read-only)] 主机操作系统使用的默认编码。
File
 Inheritedtype : String
[只读 (read-only)] 文件类型。
FileReference
  url : String
此文件路径的 URL。
File
  userDirectory : File
[静态] [只读 (read-only)] 用户目录。
File
公共方法
 方法定义方
  
File(path:String = null)
File 类的构造函数。
File
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
browse(typeFilter:Array = null):Boolean
显示一个文件浏览对话框,让用户选择要上载的文件。
FileReference
  
显示一个目录选择器对话框,用户可从中选择一个目录。
File
  
browseForOpen(title:String, typeFilter:Array = null):void
显示“打开文件”对话框,用户可从中选择要打开的文件。
File
  
browseForOpenMultiple(title:String, typeFilter:Array = null):void
显示“打开文件”对话框,用户可从中选择一个或多个要打开的文件。
File
  
browseForSave(title:String):void
显示“保存文件”对话框,用户可从中选择一个文件目标。
File
  
cancel():void
[override] 取消任何未处理的异步操作。
File
  
规范化 File 路径。
File
  
返回此 File 对象的副本。
File
  
copyTo(newLocation:FileReference, overwrite:Boolean = false):void
将由此 File 对象指定的位置的文件或目录复制到由 newLocation 参数指定的位置。
File
  
copyToAsync(newLocation:FileReference, overwrite:Boolean = false):void
开始将此 File 对象指定的位置中的文件或目录复制到 destination 参数指定的位置。
File
  
创建指定的目录和任何所需的父目录。
File
  
[静态] 返回对新临时目录的引用。
File
  
[静态] 返回对新临时文件的引用。
File
  
deleteDirectory(deleteDirectoryContents:Boolean = false):void
删除目录。
File
  
deleteDirectoryAsync(deleteDirectoryContents:Boolean = false):void
异步删除目录。
File
  
deleteFile():void
删除文件。
File
  
异步删除文件。
File
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
download(request:URLRequest, defaultFileName:String = null):void
打开对话框,以允许用户从远程服务器下载文件。
FileReference
  
返回与此 File 对象表示的目录中的文件和目录对应的 File 对象的数组。
File
  
异步检索与此 File 对象表示的目录内容对应的 File 对象的数组。
File
  
查找两个 File 路径之间的相对路径。
File
  
[静态] 返回 File 对象的数组,列出文件系统根目录。
File
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。
Object
 Inherited
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
load():void
开始加载用户选择的本地文件。
FileReference
  
moveTo(newLocation:FileReference, overwrite:Boolean = false):void
将此 File 对象指定的位置中的文件或目录移动到 destination 参数指定的位置。
File
  
moveToAsync(newLocation:FileReference, overwrite:Boolean = false):void
开始将此 File 对象指定的位置中的文件或目录移动到 newLocation 参数指定的位置。
File
  
将文件或目录移动到垃圾桶。
File
  
将文件或目录异步移动到垃圾桶。
File
 Inherited
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
基于 path 参数(一个字符串)创建一个其路径相对于此 File 对象路径的新 File 对象。
File
 Inherited
save(data:*, defaultFileName:String = null):void
打开一个对话框,允许用户将文件保存到本地文件系统。
FileReference
 Inherited
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。
Object
 Inherited
toString():String
返回指定对象的字符串表示形式。
Object
 Inherited
upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
开始将用户选择的文件上载到远程服务器。
FileReference
 Inherited
uploadUnencoded(request:URLRequest):void
启动将文件上载到 URL 的操作,不进行任何编码。
FileReference
 Inherited
valueOf():Object
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  在取消未处理的异步操作时调度。File
  在异步操作完成时调度。File
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
  当由于调用 getDirectoryListingAsync() 方法而提供目录列表时调度。File
 Inherited
httpResponseStatus
在 upload() 或 uploadUnencoded() 方法调用尝试通过 HTTP 访问数据,并且 Adobe AIR 可以检测并返回请求的状态代码时调度。FileReference
 Inherited
httpStatus
当上载失败并且存在可用来描述失败的 HTTP 状态代码时调度。FileReference
  在执行异步文件操作期间发生错误时调度。File
 Inherited
open
当上载或下载操作开始时调度。FileReference
 Inherited
progress
在文件上载或下载操作期间定期调度。FileReference
  当操作违反安全限制时调度。File
  当用户从文件浏览或目录浏览对话框中选择文件或目录时调度。File
  当用户从通过调用 browseForOpenMultiple() 方法打开的对话框中选择文件时调度。File
 Inherited
uploadCompleteData
成功上载并从服务器接收数据之后调度。FileReference
属性详细信息
applicationDirectory属性
applicationDirectory:File  [只读 (read-only)]
运行时版本:  1.0

包含应用程序已安装文件的文件夹。

此对象的 url 属性使用 app URL 架构(而不是 file URL 架构)。这意味着指定的 url"app:"开头(而不是以 "file:" 开头)。此外,如果创建一个相对于 File.applicationDirectory 目录的 File 对象(通过使用 resolvePath() 方法),则该 File 对象的 url 也使用 app URL 架构。

注意:您无法对其路径使用 app URL 架构的文件或目录进行写入。也无法删除或创建其路径使用 app URL 架构的文件或文件夹。出于安全方面的原因,修改应用程序目录中的内容不是好的做法。如果想要存储特定于应用程序的数据,请考虑使用应用程序存储目录 (File.applicationStorageDirectory)。如果希望应用程序存储目录中的内容能够访问具有应用程序特权的功能 (AIR API),则可以使用沙箱桥公开该功能。

applicationDirectory 属性可用于引用应用程序目录,它在所有平台上均有效。如果使用 nativePathurl 属性设置 File 对象,使其引用应用程序目录,此命令将仅在能够识别此路径的平台上有效。

另请参见

applicationStorageDirectory属性 
applicationStorageDirectory:File  [只读 (read-only)]
运行时版本:  1.0

应用程序的专用存储目录。

每个 AIR 应用程序都有一个唯一的、永久的应用程序存储目录,该目录是您首次访问 File.applicationStorageDirectory 时创建的。此目录是存储特定于应用程序的数据的方便位置。

在卸载某个 AIR 应用程序时,卸载程序不会删除存储在应用程序存储目录中的文件。

此对象的 url 属性使用 app-storage URL 架构(而不是 file URL 架构)。这意味着指定的 url 字符串以"app-storage:"开头(而不是以 "file:" 开头)。此外,如果创建一个相对于 File.applicationStoreDirectory 目录的 File 对象(通过使用 resolvePath() 方法),则该 File 对象的 url 也使用 app-storage URL 架构(如示例中所示)。

applicationStorageDirectory 属性可用于引用应用程序存储目录,它在所有平台上均有效。如果使用 nativePathurl 属性设置 File 对象,使其引用应用程序存储目录,此命令将仅在能够识别此路径的平台上有效。


示例
下面的代码创建一个 File 对象,该对象指向应用程序存储目录中的“images”子目录。
var tempFiles = air.File.applicationStorageDirectory;
tempFiles = tempFiles.resolvePath("images/");
air.trace(tempFiles.url); // app-storage:/images
desktopDirectory属性 
desktopDirectory:File  [只读 (read-only)]
运行时版本:  1.0

用户桌面目录。

desktopDirectory 属性可用于引用桌面目录,它在所有平台上均有效。如果使用 nativePathurl 属性设置 File 对象,使其引用桌面目录,此命令将仅在能够识别此路径的平台上有效。


示例
下面的代码输出用户桌面目录中包含的文件和目录的列表。
var desktop = air.File.desktopDirectory;

var files = desktop.getDirectoryListing()

for (i = 0; i < files.length; i++) {
    air.trace(files[i].nativePath)
}
documentsDirectory属性 
documentsDirectory:File  [只读 (read-only)]
运行时版本:  1.0

用户文档目录。

在 Windows 上,它指向“My Documents”目录(如 C:\Documents and Settings\用户名\My Documents)。在 Mac OS 中,默认位置是 /Users/userName/Documents。在 Linux 中,默认位置是 /home/userName/Documents(英语系统上),并且该属性遵守 xdg-user-dirs 设置。

documentsDirectory 属性可用于引用文档目录,它在所有平台上均有效。如果使用 nativePathurl 属性设置 File 对象,使其引用文档目录,此命令将仅在能够识别此路径的平台上有效。


示例
下面的代码使用 File.documentsDirectory 属性和 File.createDirectory() 方法来确保用户文档目录中存在一个名为“AIR Test”的目录。
var directory = air.File.documentsDirectory;
directory = directory.resolvePath("AIR Test");

air.File.createDirectory(directory);
air.trace(directory.exists); // true
exists属性 
exists:Boolean  [只读 (read-only)]
运行时版本:  1.0

指示引用的文件或目录是否存在。如果 File 对象指向现有的文件或目录,则该值为 true;否则为 false


示例
下面的代码创建一个临时文件,然后将其删除,并使用 File.exists 属性来检查该文件是否存在。
var temp = air.File.createTempFile();
air.trace(temp.exists) // true
temp.deleteFile();
air.trace(temp.exists) // false
icon属性 
icon:Icon  [只读 (read-only)]
运行时版本:  1.0

包含为文件定义的图标的 Icon 对象。Icon 对象是与各种图标状态相对应的 BitmapData 对象的数组。在 Linux 中,Icon 对象不包含图标。


示例
下面的代码显示如何在 icon 数组中查找具有最大高度的图像,并将该图像设置为 Bitmap 对象。
var directory = air.File.documentsDirectory;
var bitmaps = directory.icon.bitmaps;
var bmpData = new air.BitmapData(1, 1);
for (i = 0; i < bitmaps.length; i++) {
    if (bitmaps[i].height > bmpData.height) {
        bmpData = directory.icon.bitmaps[i];
    }
}
var iconBmp = new air.Bitmap(bmpData);
isDirectory属性 
isDirectory:Boolean  [只读 (read-only)]
运行时版本:  1.0

指示是否为对目录的引用。如果 File 对象指向一个目录,则该值为 true;否则为 false


示例
下面的代码创建指向用户目录中文件和目录的 File 对象的数组,然后使用 isDirectory 属性仅列出指向目录(而不是文件)的那些 File 对象。
var userDirFiles = air.File.userDirectory.getDirectoryListing();
for (i = 0; i < userDirFiles.length; i++) {
    if (userDirFiles[i].isDirectory) {
        air.trace(userDirFiles[i].nativePath);
    }
}    
isHidden属性 
isHidden:Boolean  [只读 (read-only)]
运行时版本:  1.0

指示引用的文件或目录是否为“隐藏”。如果引用的文件或目录是隐藏的,则该值为 true;否则为 false


示例
下面的代码创建指向用户目录中文件和目录的 File 对象的数组,然后使用 isHidden 属性列出隐藏的文件和目录。
var userDirFiles = air.File.userDirectory.getDirectoryListing();
for (i = 0; i < userDirFiles.length; i++) {
    if (userDirFiles[i].isHidden) {
        air.trace(userDirFiles[i].nativePath);
    }
}    
isPackage属性 
isPackage:Boolean  [只读 (read-only)]
运行时版本:  1.0

指示引用的目录是否为包。

如果引用的目录是包,则该值为 true;否则为 false。请注意,File 类不允许直接创建包。

isSymbolicLink属性 
isSymbolicLink:Boolean  [只读 (read-only)]
运行时版本:  1.0

指示引用是否为符号链接。

如果 File 对象是一个符号链接,则该值为 true;否则为 false。请注意,File 类不允许直接创建符号链接。

符号链接允许一个文件指向磁盘上的另一个文件或目录。符号链接虽然与 Mac OS 中的别名和 Windows 中的快捷方式相似,但并不相同。别名或快捷方式始终报告为文件(而不是目录),读取或写入别名或快捷方式从不影响它指向的原始文件或目录。另一方面,符号链接的行为大体上与其所指向的文件或目录类似。它可以报告为文件或目录,读取或写入符号链接将会影响它指向的文件或目录,而不影响符号链接本身。删除符号链接,但删除的是链接,而非链接的目标。

Mac ® OS ®、Linux 和 Windows ® Vista ® 支持符号链接。此外,在 Windows 中,引用交接点(用于 NTFS 文件系统)的 File 对象的 isSymbolicLink 属性设置为 true

lineEnding属性 
lineEnding:String  [只读 (read-only)]
运行时版本:  1.0

主机操作系统使用的行结束字符序列。

在 Mac OS 和 Linux 中,这是换行符(十六进制字符代码 0x0A)。在 Windows 中,它是回车符(十六进制字符代码 0x0D),后跟换行符(十六进制字符代码 0x0A)。


示例
下面的代码将一个字符串 (str) 写入文本文件,并使用 File.lineEnding 静态属性,用主机操作系统首选的行尾符来替换换行符的所有实例(在代码中用正则表达式 /\n/g 表示)。
var str = "Hello\n" + 
        "World\n";
str = str.replace(/\n/g, air.File.lineEnding);
var file = air.File.documentsDirectory.resolvePath("AIR Test/test.txt");
var fileStream = new air.FileStream();
fileStream.open(file, air.FileMode.WRITE);
fileStream.writeUTF(str);
fileStream.close();
nativePath属性 
nativePath:String
运行时版本:  1.0

采用主机操作系统表示形式的完整路径。在 Mac OS 和 Linux 中,使用正斜杠 (/) 字符作为路径分隔符。但在 Windows 中,可以使用正斜杠字符或反斜杠 (\) 字符作为路径分隔符来设置 nativePath 属性,AIR 会自动用相应的反斜杠字符来替换正斜杠。

在使用 set 命令,以代码形式直接设置 nativePath 属性之前,请考虑这是否会生成平台专用代码。例如,“C:\\Documents and Settings\\bob\\Desktop”这样的本机路径仅在 Windows 上有效。较好的方法是使用以下这些静态属性,它们可以表示常用目录,且在所有平台上均有效:

可以使用 resolvePath() 方法获取这些目录的相对路径。

某些 API(如 IMG 对象的 src 属性)使用 URL(File 对象的 url 属性),不使用本机路径(nativePath 属性)。


引发
SecurityError — 调用方不在应用程序安全沙箱中。
 
ArgumentError — 路径的语法无效。

示例
下面的代码显示 File 对象的 nativePath 属性和 url 属性之间的区别。注释将在示例 Windows 计算机上显示结果。
var docs = air.File.documentsDirectory;
air.trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents
air.trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
parent属性 
parent:File  [只读 (read-only)]
运行时版本:  1.0

包含此 File 对象引用的文件或目录的目录。

如果文件或目录不存在,则 parent 属性仍然返回指向包含目录的 File 对象(即使该目录不存在)。

此属性与 resolvePath("..") 的返回值相同,只不过根目录的父级为 null


示例
下面的代码使用 parent 属性显示包含临时文件的目录。
var tempFile = air.File.createTempDirectory();
air.trace(tempFile.parent.nativePath);
tempFile.deleteFile();
separator属性 
separator:String  [只读 (read-only)]
运行时版本:  1.0

主机操作系统的路径组件分隔符。

在 Mac OS 和 Linux 中,这是正斜杠 (/) 字符。在 Windows 中,它是反斜杠 (\) 字符。

注意:当在字符串中使用反斜杠时,请记住键入该字符两次(例如“directory\\file.ext”)。字符串中的每一对反斜杠在字符串中均表示单个反斜杠。


示例
下面的代码使用 getRelativePath() 方法获取目录和文件之间的相对路径。然后,代码使用 File.separator 静态属性,用操作系统所用的分隔符来替换路径中的正斜杠 (/) 字符,在 Windows 中为反斜杠 (\),在其他操作系统中为正斜杠。
var directory = air.File.documentsDirectory.resolvePath("Apollo Test");
var file = air.File.documentsDirectory.resolvePath("Apollo Test/employees/bob/test.txt");

var relativePath = directory.getRelativePath(file); // employees/bob/test.txt
relativePath = relativePath.replace(/\//g, air.File.separator);
air.trace(relativePath); 
在此示例中,replace() 方法使用正则表达式 /\//g所有 正斜杠字符匹配。
spaceAvailable属性 
spaceAvailable:Number  [只读 (read-only)]
运行时版本:  1.1

此 File 位置的可用空间(以字节为单位)。

如果 File 对象引用一个目录,则 spaceAvailable 将指示可供文件使用的目录空间。如果 File 对象引用一个文件,则 spaceAvailable 将指示可供该文件使用的空间。如果该文件位置不存在,则 spaceAvailable 将设置为 0。如果 File 对象引用一个符号链接,则 spaceAvailable 将指示符号链接指向的位置的可用空间。

通常,目录或文件的可用空间与包含目录或文件的卷上的可用空间相同。不过,可用空间与磁盘配额及每个目录的空间限制有关。

将文件或目录添加到卷中通常需要比文件的实际大小或目录中内容的实际大小更多的空间。例如,操作系统可能需要更多空间来存储索引信息。或者,所需的磁盘扇区可能会使用额外的空间。此外,可用空间是动态变化的。因此,您不能期望为文件存储分配报告的全部 空间。

systemCharset属性 
systemCharset:String  [只读 (read-only)]
运行时版本:  1.0

主机操作系统使用的默认编码。

可能值包括“windows-1252”“shift-jis”“cn-gb”“iso-8859-1”等。有关完整列表,请参阅Supported Character

在使用 FileStream 类的 readMultiByte()writeMultiByte() 方法时,可以使用此值。

另请参见


示例
下面的代码打开一个文件(用户文档目录的 AIR Test 子目录中的 test.txt 文件),并使用 File.systemCharset 静态属性作为 FileStream 对象的 readMultiByte() 方法调用的 charSet 参数。
var file = air.File.documentsDirectory.resolvePath("AIR Test/test.txt");
var fileStream = new air.FileStream();
fileStream.open(file, air.FileMode.READ);
var str = fileStream.readMultiByte(file.size, air.File.systemCharset);
air.trace(str);    
url属性 
url:String
运行时版本:  1.0

此文件路径的 URL。

如果这是对应用程序存储目录中的路径的引用,则 URL 架构为 "app-storage";如果这是对应用程序目录中路径的引用,则 URL 架构为 "app";否则此架构为 "file"

在向 url 属性值时,可以使用空格字符(而不是 "%20");AIR 会自动对该字符串进行编码(例如,将空格转换为 "%20")。


引发
ArgumentError — URL 语法无效。
 
SecurityError — 调用方不在应用程序安全沙箱中。

另请参见


示例
下面的代码显示 File 对象的 nativePath 属性和 url 属性之间的区别。注释将在示例 Windows 计算机上显示结果。
var docs = air.File.documentsDirectory;
air.trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents
air.trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
userDirectory属性 
userDirectory:File  [只读 (read-only)]
运行时版本:  1.0

用户目录。

在 Windows 中,这是“My Documents”目录的父级(例如,C:\Documents and Settings\userName)。在 Mac OS 中,它是 /Users/userName. 在 Linux 中,它是 /home/userName。

userDirectory 属性可用于引用用户目录,它在所有平台上均有效。如果直接设置 File 对象的 nativePathurl 属性,此命令将仅在能够识别此路径的平台上有效。


示例
下面的代码输出用户目录的根级别包含的文件和目录的列表:
var files = air.File.userDirectory.getDirectoryListing();
for (i = 0; i < files.length; i++) {
    air.trace(files[i].nativePath);
}
构造函数详细信息
File()构造函数
function File(path:String = null)
运行时版本:  1.0

File 类的构造函数。

如果传递 path 参数,File 对象将指向指定的路径,并将设置 nativePath 属性和 url 属性以反映该路径。

尽管可以传递 path 参数来指定文件路径,但请考虑这是否会生成平台专用代码。例如,“C:\\\\Documents and Settings\\bob\\Desktop”这样的本机路径或“file:///C:/Documents%20and%20Settings/bob/Desktop”这样的 URL 仅在 Windows 上有效。较好的方法是使用以下这些静态属性,它们可以表示常用目录,且在所有平台上均有效:

然后可以使用 resolvePath() 方法来获取这些目录的相对路径。例如,以下代码可以设置 File 对象,使其指向应用程序存储目录中的 settings.xml 文件:

var file = air.File.applicationStorageDirectory.resolvePath("settings.xml");

参数
path:String (default = null) — 文件的路径。可以通过使用 URL 或使用本机路径(特定于平台)表示法来指定路径。

如果指定 URL,则可以使用以下 URL 架构之一:fileappapp-storage。下面是使用 URL 表示法时 path 参数的有效值:

  • “app:/DesktopPathTest.xml”
  • “app-storage:/preferences.xml”
  • “file:///C:/Documents%20and%20Settings/bob/Desktop”(Bob 的 Windows 计算机桌面)
  • “file:///Users/bob/Desktop”(Bob 的 Mac 计算机桌面)

appapp-storage URL 方案很有用,因为这些方案在所有文件系统中均可指向有效的文件。不过,在另外两个使用 file URL 架构指向用户桌面目录的示例中,最好是path 参数传递给 File() 构造函数,然后将 File.desktopDirectory 分配给 File 对象,以此作为访问独立于平台和独立于用户的桌面目录的方式。

如果指定本机路径,则在 Windows 中可以使用反斜杠字符或正斜杠字符作为此参数中的路径分隔符;在 Mac OS 和 Linux 中则使用正斜杠字符。下面是使用本机路径表示法时 path 参数的有效值:

  • “C:/Documents and Settings/bob/Desktop”
  • “/Users/bob/Desktop”

不过,对于这两个示例,不应path 参数传递给 File() 构造函数,然后将 File.desktopDirectory 分配给 File 对象,以此作为访问独立于平台和独立于用户的桌面目录的方式。


引发
ArgumentError path 参数的语法无效。

另请参见

方法详细信息
browseForDirectory()方法
function browseForDirectory(title:String):void
运行时版本:  1.0

显示一个目录选择器对话框,用户可从中选择一个目录。当用户选择该目录时,将调度 select 事件。select 事件的 target 属性是指向所选目录的 File 对象。

参数

title:String — 在对话框标题栏中显示的字符串。


事件
cancel:Event — 在用户单击“打开文件”对话框中的“取消”按钮时调度。
 
select:Event — 在用户选择目录并关闭目录选择器对话框时调度。

另请参见


示例

下面的代码使用 File.browseForDirectory() 方法让用户选择一个目录。当选择目录时,此代码会在 trace() 输出中列出所选目录的内容。
var directory = air.File.documentsDirectory;

try
{
    directory.browseForDirectory("Select Directory");
    directory.addEventListener(air.Event.SELECT, directorySelected);
}
catch (error)
{
    air.trace("Failed:", error.message)
}

function directorySelected(event) 
{
    directory = event.target ;
    var files = directory.getDirectoryListing();
    for(var i = 0; i < files.length; i++)
    {
        air.trace(files[i].name);
    }
}
browseForOpen()方法 
function browseForOpen(title:String, typeFilter:Array = null):void
运行时版本:  1.0

显示“打开文件”对话框,用户可从中选择要打开的文件。

当用户选择该文件时,将调度 select 事件。select 事件的 target 属性是指向所选文件的 File 对象。

参数

title:String — 在对话框标题栏中显示的字符串。
 
typeFilter:Array (default = null) — 一个 FileFilter 实例数组,用于过滤在对话框中显示的文件。 如果省略此参数,则显示所有文件。 有关详细信息,请参阅 FileFilter 类。


事件
cancel:Event — 在用户单击“打开文件”对话框中的“取消”按钮时调度。
 
select:Event — 在用户选择文件并关闭“打开文件”对话框时调度。

另请参见


示例

下面的代码使用 File.browseForOpen() 方法让用户选择一个文本文件。当选择此文件时,此代码将文件数据读入到字符串中。
var fileToOpen = new air.File();
var txtFilter = new air.FileFilter("Text", "*.as;*.css;*.html;*.txt;*.xml");

try 
{
    fileToOpen.browseForOpen("Open", [txtFilter]);
    fileToOpen.addEventListener(air.Event.SELECT, fileSelected);
}
catch (error)
{
    air.trace("Failed:", error.message)
}

function fileSelected(event) 
{
    var stream = new air.FileStream();
    stream.open(event.target, air.FileMode.READ);
    var fileData = stream.readUTFBytes(stream.bytesAvailable);
    air.trace(fileData);
}
browseForOpenMultiple()方法 
function browseForOpenMultiple(title:String, typeFilter:Array = null):void
运行时版本:  1.0

显示“打开文件”对话框,用户可从中选择一个或多个要打开的文件。

当用户选择文件时,将调度 selectMultiple 事件。select 事件的 target 属性是此 File 对象。与 browseForOpen() 不同,使用 browseForOpenMultiple() 方法时,此 File 对象不会更新以引用任何所选的文件。相反,生成的 selectMultiple 事件包含所选文件的数组。

参数

title:String — 在对话框标题栏中显示的字符串。
 
typeFilter:Array (default = null) — 一个 FileFilter 实例数组,用于过滤在对话框中显示的文件。 如果省略此参数,则显示所有文件。 有关详细信息,请参阅 FileFilter 类。


事件
cancel:Event — 在用户单击“打开文件”对话框中的“取消”按钮时调度。
 
selectMultiple:FileListEvent — 在用户选择文件并关闭“打开文件”对话框时调度。

另请参见


示例

下面的代码使用 File.browseForOpenMultiple() 方法让用户选择多个文件。当选择多个文件时,此代码输出所选文件的路径。
var docsDir = air.File.documentsDirectory;
try
{
    docsDir.browseForOpenMultiple("Select Files");
    docsDir.addEventListener(air.FileListEvent.SELECT_MULTIPLE, filesSelected);
}
catch (error)
{
    air.trace("Failed:", error.message)
}

function filesSelected(event) 
{
    for (i = 0; i < event.files.length; i++) 
    {
        air.trace(event.files[i].nativePath);
    }
}
browseForSave()方法 
function browseForSave(title:String):void
运行时版本:  1.0

显示“保存文件”对话框,用户可从中选择一个文件目标。

当用户选择该文件时,将调度 select 事件。select 事件的 target 属性是指向所选保存目标的 File 对象。

参数

title:String — 在对话框标题栏中显示的字符串。


事件
cancel:Event — 在用户单击“保存文件”对话框中的“取消”按钮时调度。
 
select:Event — 在用户选择文件并关闭“保存文件”对话框时调度。

另请参见


示例

下面的代码使用 File.browseForSave() 方法让用户选择用于保存文件的路径。在选择文件时,此代码将数据保存到所选的文件路径。
var docsDir = air.File.documentsDirectory;
try
{
    docsDir.browseForSave("Save As");
    docsDir.addEventListener(air.Event.SELECT, saveData);
}
catch (error)
{
    air.trace("Failed:", error.message)
}

function saveData(event) 
{
    var newFile = event.target ;
    var str = "Hello.";
    if (!newFile.exists)
    {
        var stream = new air.FileStream();
        stream.open(newFile, air.FileMode.WRITE);
        stream.writeUTFBytes(str);
        stream.close();
    }
}
cancel()方法 
function cancel():void
运行时版本:  1.0

取消任何未处理的异步操作。

canonicalize()方法 
function canonicalize():void
运行时版本:  1.0

规范化 File 路径。

如果 File 对象表示现有的文件或目录,规范化将调整该路径,使其与实际文件名或目录名的大小写相匹配。如果 File 对象是符号链接,规范化将调整该路径,使其与该链接所指向的文件或目录相匹配,不管所指向的文件或目录是否存在。在区分大小写的文件系统(如 Linux)上,当多个文件的名称只有大小写不同时,canonicalize() 方法将调整路径以匹配最先找到的文件(以文件系统确定的顺序)。

此外,在 Windows 中通过规范化可将短文件名转换成长文件名。


示例

下面的代码显示如何使用 canonicalize() 方法查找目录名的正确大小写。运行此示例前,在您的计算机桌面上创建一个名为 AIR Test 的目录。
var path = air.File.desktopDirectory.resolvePath("air test");
air.trace(path.nativePath); 
path.canonicalize();
air.trace(path.nativePath); // ...\AIR Test

下面的代码显示如何使用 canonicalize() 方法基于 Windows 目录的短名称查找其长名称。此示例假定在 C: 驱动器的根目录中有一个 AIR Test 目录,并且系统已将短名称 AIR~1 分配给该目录。
var path = new air.File();
path.nativePath = "C:\\AIR~1";
path.canonicalize();
air.trace(path.nativePath); // C:\AIR Test
clone()方法 
function clone():File
运行时版本:  1.0

返回此 File 对象的副本。未复制事件注册。

注意:此方法 复制文件本身。它仅制作 JavaScript File 对象实例的副本。若要复制文件,请使用 copyTo() 方法。

返回
File
copyTo()方法 
function copyTo(newLocation:FileReference, overwrite:Boolean = false):void
运行时版本:  1.0

将由此 File 对象指定的位置的文件或目录复制到由 newLocation 参数指定的位置。复制过程将创建任何需要的父目录(如有可能)。

参数

newLocation:FileReference — 新文件的目标位置。请注意,此 File 对象指定生成(复制)的文件或目录,不是 包含该文件或目录的目录的路径。
 
overwrite:Boolean (default = false) — 如果为 false,则当由 target 参数指定的文件已经存在时复制将失败。如果为 true,该操作将覆盖现有的同名文件或目录。


引发
IOError — 源不存在;或者目标存在且 overwritefalse;或者无法将源复制到目标;或者源和目标引用相同的文件或文件夹且 overwrite 设置为 true。在 Windows 中无法复制打开的文件,也无法复制包含已打开文件的目录。

另请参见


示例

下面的代码显示如何使用 copyTo() 方法复制文件。运行此代码之前,请在计算机上文档目录的 AIR Test 子目录中创建一个 test1.txt 文件。生成的复制文件名为 test2.txt,并且也在 AIR Test 子目录中。当您将 clobber 参数设置为 true 时,此操作将覆盖任何现有的 test2.txt 文件。
var sourceFile = air.File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination = air.File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.txt");

if (sourceFile.copyTo(destination, true)) {
    air.trace("Done.")
}

下面的代码显示如何使用 copyTo() 方法复制文件。运行此代码之前,在计算机上主目录的 AIR Test 子目录中创建一个 test1.txt 文件。生成的复制文件名为 test2.txt。trycatch 语句显示如何响应错误。
var sourceFile = air.File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination = air.File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.txt");

try 
{
    if (sourceFile.copyTo(destination, true)) {
}
catch (error)
{
    air.trace("Error:" error.message)
}
copyToAsync()方法 
function copyToAsync(newLocation:FileReference, overwrite:Boolean = false):void
运行时版本:  1.0

开始将此 File 对象指定的位置中的文件或目录复制到 destination 参数指定的位置。

完成后,将调度 complete 事件(成功)或 ioError 事件(不成功)。复制过程将创建任何需要的父目录(如有可能)。

参数

newLocation:FileReference — 新文件的目标位置。请注意,此 File 对象指定生成(复制)的文件或目录,不是 包含该文件或目录的目录的路径。
 
overwrite:Boolean (default = false) — 如果为 false,则当由 target 文件指定的文件已经存在时复制将失败。如果为 true,则该操作将覆盖任何现有的同名文件或目录。


事件
complete:Event — 在文件或目录已成功复制时调度。
 
ioError:IOErrorEvent — 源不存在;或目标存在但 overwritefalse;或无法将源复制到目标;或源和目标引用相同的文件或文件夹但 overwrite 设置为 true。在 Windows 中无法复制打开的文件,也无法复制包含已打开文件的目录。

另请参见


示例

下面的代码显示如何使用 copyToAsync() 方法复制文件。运行此代码之前,请在计算机上文档目录的 AIR Test 子目录中创建一个 test1.txt 文件。生成的复制文件名为 test2.txt,并且也在 AIR Test 子目录中。当您将 clobber 参数设置为 true 时,此操作将覆盖任何现有的 test2.txt 文件。
var sourceFile = air.File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination = air.File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.txt");

var sourceFile.copyToAsync(destination, true);
sourceFile.addEventListener(air.Event.COMPLETE, fileCopiedHandler);

function fileCopiedHandler(event): void {
    air.trace("Done.")
}
createDirectory()方法 
function createDirectory():void
运行时版本:  1.0

创建指定的目录和任何所需的父目录。如果该目录已存在,则不执行任何操作。


引发
IOError — 目录不存在且无法创建。

示例

下面的代码将桌面上名为 test.txt 的文件移动到文档目录的 AIR Test 子目录中。调用 createDirectory() 方法以确保 AIR Test 目录存在后才移动此文件。
var source = air.File.desktopDirectory.resolvePath("test.txt");
var target = air.File.documentsDirectory.resolvePath("AIR Test/test.txt");
var targetParent = target.parent;
targetParent.createDirectory();
source.moveTo(target, true);
createTempDirectory()方法 
function createTempDirectory():File
运行时版本:  1.0

返回对新临时目录的引用。这是一个位于系统临时目录路径中的新目录。

使用此方法来标识新的唯一目录,无需查询系统即可以确定该目录是新的唯一目录。

您可能需要在关闭应用程序前删除该临时目录,因为它不会自动删除。

返回
File — 引用新临时目录的 File 对象。

另请参见


示例

下面的代码使用 createTempFile() 方法获取对新临时目录的引用。
var temp = air.File.createTempDirectory();
air.trace(temp.nativePath);
每次运行此代码时都会创建一个新的(唯一的)文件。
createTempFile()方法 
function createTempFile():File
运行时版本:  1.0

返回对新临时文件的引用。这是一个位于系统临时目录路径中的新文件。

使用此方法来标识新的唯一文件,无需查询系统即可以确定该文件是新的唯一文件。

您可能需要在关闭应用程序前删除该临时文件,因为它不会自动删除。

返回
File — 引用新临时文件的 File 对象。

另请参见


示例

下面的代码使用 createTempFile() 方法获取对新临时文件的引用。
var temp = air.File.createTempFile();
air.trace(temp.nativePath);
每次运行此代码时都会创建一个新的(唯一的)文件。
deleteDirectory()方法 
function deleteDirectory(deleteDirectoryContents:Boolean = false):void
运行时版本:  1.0

删除目录。如果此 File 实际上是指向目录的符号链接,则删除的是链接,而非目录。

参数

deleteDirectoryContents:Boolean (default = false) — 指定是否删除包含文件或子目录的目录。如果为 false,则当该目录包含文件或目录时,调用此方法将引发异常。


引发
IOError — 目录不存在或无法删除。在 Windows 中无法删除包含已打开文件的目录。

另请参见


示例

下面的代码创建一个空目录,然后使用 deleteDirectory() 方法删除该目录。
var directory = air.File.documentsDirectory.resolvePath("Empty Junk Directory/");
air.File.createDirectory(directory);
air.trace(directory.exists); // true
directory.deleteDirectory();
air.trace(directory.exists); // false
deleteDirectoryAsync()方法 
function deleteDirectoryAsync(deleteDirectoryContents:Boolean = false):void
运行时版本:  1.0

异步删除目录。如果此 File 实际上是指向目录的符号链接,则删除的是链接,而非目录。

参数

deleteDirectoryContents:Boolean (default = false) — 指定是否删除包含文件或子目录的目录。如果为 false,则当该目录包含文件或目录时,File 对象将调度 ioError 事件。


事件
complete:Event — 在目录已成功删除时调度。
 
ioError:IOErrorEvent — 目录不存在或无法删除。在 Windows 中无法删除包含已打开文件的目录。

另请参见

deleteFile()方法 
function deleteFile():void
运行时版本:  1.0

删除文件。如果此 File 实际上是符号链接,则删除的是链接,而非目标文件。


引发
IOError — 文件不存在或无法删除。在 Windows 中无法删除当前打开的文件。

另请参见


示例

下面的代码创建一个临时文件,然后调用 deleteFile() 方法以删除该文件。
var file = air.File.createTempFile();
air.trace(file.exists); // true
file.deleteFile();
air.trace(file.exists); // false
deleteFileAsync()方法 
function deleteFileAsync():void
运行时版本:  1.0

异步删除文件。如果此 File 实际上是符号链接,则删除的是链接,而非目标文件。


事件
complete:Event — 在文件已成功删除时调度。
 
ioError:IOErrorEvent — 文件不存在或无法删除。在 Windows 中无法删除当前打开的文件。

另请参见

getDirectoryListing()方法 
function getDirectoryListing():Array
运行时版本:  1.0

返回与此 File 对象表示的目录中的文件和目录对应的 File 对象的数组。此方法不浏览子目录的内容。

返回
Array — File 对象的数组。

另请参见


示例

下面的代码显示如何使用 getDirectoryListing() 方法枚举用户目录的内容。
var directory = air.File.userDirectory;
var list = directory.getDirectoryListing();
for (i = 0; i < list.length; i++) {
    air.trace(list[i].nativePath);
}
getDirectoryListingAsync()方法 
function getDirectoryListingAsync():void
运行时版本:  1.0

异步检索与此 File 对象表示的目录内容对应的 File 对象的数组。


事件
ioError:ErrorEvent — 您没有足够的权限读取此目录,或此目录不存在。
 
directoryListing:FileListEvent — 目录内容已成功枚举。contents 事件包括一个 files 属性,该属性是生成的 File 对象的数组。

另请参见


示例

下面的代码显示如何使用 getDirectoryListingAsync() 方法枚举用户目录的内容。
var directory = air.File.userDirectory;
directory.getDirectoryListingAsync();
directory.addEventListener(air.FileListEvent.DIRECTORY_LISTING, directoryListingHandler);

function directoryListingHandler(event) {
    var list = event.files;
    for (i = 0; i < list.length; i++) {
        air.trace(list[i].nativePath);
    }
}
getRelativePath()方法 
function getRelativePath(ref:FileReference, useDotDot:Boolean = false):String
运行时版本:  1.0

查找两个 File 路径之间的相对路径。

相对路径是可以追加到此引用(据此引用进行解析)以便定位第二个(参数)引用的组件的列表。使用“/”分隔符返回相对路径。

或者,相对路径可以包括“..”引用,但这样的路径将不能跨越明显的卷边界。

参数

ref:FileReference — 针对其给定该路径的 File 对象。
 
useDotDot:Boolean (default = false) — 指定生成的相对路径是否可以使用“..”组件。

返回
String — 如果可能,则为此文件(或目录)和 ref 文件(或目录)之间的相对路径;否则为 null

引发
ArgumentError — 该引用为 null
 
SecurityError — 调用方不在应用程序安全沙箱中。
getRootDirectories()方法 
function getRootDirectories():Array
运行时版本:  1.0

返回 File 对象的数组,列出文件系统根目录。

例如在 Windows 中,这是一个卷列表,如 C: 驱动器和 D: 驱动器。此数组中不包括空的驱动器,如未插入光盘的 CD 或 DVD 驱动器。在 Mac OS 和 Linux 中,此方法始终返回计算机的唯一根目录(“/”目录)

返回
Array — File 对象的数组,列出各个根目录。

示例

下面的代码输出根目录的列表:
var rootDirs = air.File.getRootDirectories();

for (i = 0; i < rootDirs.length; i++) {
    air.trace(rootDirs[i].nativePath)
}
moveTo()方法 
function moveTo(newLocation:FileReference, overwrite:Boolean = false):void
运行时版本:  1.0

将此 File 对象指定的位置中的文件或目录移动到 destination 参数指定的位置。

若要重命名文件,请将 destination 参数设置为指向该文件目录中的路径,但使用不同的文件名。

移动过程将创建任何需要的父目录(如有可能)。

参数

newLocation:FileReference — 移动的目标位置。此对象指定生成(移动)的文件或目录的路径,不是 包含该文件或目录的目录的路径。
 
overwrite:Boolean (default = false) — 如果为 false,则当 target 文件已经存在时移动将失败。如果为 true,则操作将覆盖任何现有的同名文件或目录。


引发
IOError — 源不存在;或者目标存在且 overwrite 设置为 false;或者无法将源文件或目录移动到目标位置;或者源和目标引用相同的文件或文件夹且 overwrite 设置为 true。在 Windows 中无法移动打开的文件,也无法移动包含已打开文件的目录。

另请参见


示例

下面的代码显示如何使用 moveTo() 方法重命名文件。原始文件名为 test1.txt,生成的文件名为 test2.txt。由于源和目标 File 对象都指向同一个目录(用户文档目录的 Apollo Test 子目录),moveTo() 方法将重命名该文件(而不是将它移动到新的目录中)。运行此代码之前,请在计算机上文档目录的 AIR Test 子目录中创建一个 test1.txt 文件。当您将 clobber 参数设置为 true 时,此操作将覆盖任何现有的 test2.txt 文件。
var sourceFile = air.File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination = air.File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.txt");

try  
{
    sourceFile.moveTo(destination, true);
}
catch (error)
{
    air.trace("Error:" error.message);
}

下面的代码显示如何使用 moveTo() 方法移动文件。原始文件(test1.txt 文件)位于用户文档目录的 Apollo Test 子目录中,该方法将该文件移动到 Results 子目录中。运行此代码之前,在计算机上主目录的 AIR Test 子目录中创建一个 test1.txt 文件。trycatch 语句显示如何响应错误。
var sourceFile = air.File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination = air.File.documentsDirectory;
destination = destination.resolvePath("AIR Test/Results/test1.txt");

try 
{
    sourceFile.moveTo(destination, true);
}
catch (error)
{
    air.trace("Error:" error.message);
}
moveToAsync()方法 
function moveToAsync(newLocation:FileReference, overwrite:Boolean = false):void
运行时版本:  1.0

开始将此 File 对象指定的位置中的文件或目录移动到 newLocation 参数指定的位置。

若要重命名文件,请将 destination 参数设置为指向该文件目录中的路径,但使用不同的文件名。

移动过程将创建任何需要的父目录(如有可能)。

参数

newLocation:FileReference — 移动的目标位置。此对象指定生成(移动)的文件或目录的路径,不是 包含该文件或目录的目录的路径。
 
overwrite:Boolean (default = false) — 如果为 false,则当 target 文件已经存在时移动将失败。如果为 true,则操作将覆盖任何现有的同名文件或目录。


事件
complete:Event — 在文件或目录已成功移动时调度。
 
ioError:IOErrorEvent — 源不存在;或目标存在但 overwritefalse;或无法将源移到目标;或源和目标引用相同的文件或文件夹但 overwrite 设置为 true。在 Windows 中无法移动打开的文件,也无法移动包含已打开文件的目录。

另请参见


示例

下面的代码显示如何使用 moveToAsync() 方法重命名文件。原始文件名为 test1.txt,生成的文件名为 test2.txt。由于源和目标 File 对象都指向同一个目录(用户文档目录的 Apollo Test 子目录),moveToAsync() 方法将重命名该文件(而不是将它移动到新的目录中)。在运行此代码之前,在计算机上文档目录的 Apollo Test 子目录中创建一个 test1.txt 文件。当您将 clobber 参数设置为 true 时,此操作将覆盖任何现有的 test2.txt 文件。
var sourceFile = air.File.documentsDirectory;
sourceFile = sourceFile.resolvePath("Apollo Test/test1.txt");
var destination = air.File.documentsDirectory;
destination = destination.resolvePath("Apollo Test/test2.txt");

var sourceFile.moveToAsync(destination, true);
sourceFile.addEventListener(air.Event.COMPLETE, fileMoveCompleteHandler);

function fileMoveCompleteHandler(event): void 
{
    air.trace("Done.")
}
moveToTrash()方法 
function moveToTrash():void
运行时版本:  1.0

将文件或目录移动到垃圾桶。


引发
IOError — 操作系统不允许该操作;或者文件或目录不存在。在 Windows 中无法移动打开的文件,也无法移动包含当前打开的文件的目录。

另请参见

moveToTrashAsync()方法 
function moveToTrashAsync():void
运行时版本:  1.0

将文件或目录异步移动到垃圾桶。


事件
ioError:IOErrorEvent — 操作系统不允许该操作;或者文件或目录不存在。在 Windows 中无法移动打开的文件,也无法移动包含当前打开的文件的目录。
 
complete:Event — 在文件或目录已成功移动到垃圾桶时调度。

另请参见

resolvePath()方法 
function resolvePath(path:String):File
运行时版本:  1.0

基于 path 参数(一个字符串)创建一个其路径相对于此 File 对象路径的新 File 对象。

path 参数可以使用相对路径或绝对路径。

如果指定相对路径,则将给定的 path“追加”到 File 对象的路径。但是,在 path 中使用“..”可以返回生成的路径(该路径不是 File 对象的子级)。生成的引用不必引用实际文件系统位置。

如果指定一个绝对文件引用,则该方法将返回指向该路径的 File 对象。绝对文件引用应使用对用户的操作系统有效的本机路径语法(例如 Windows 上的 "C:\\test")。不要将 URL(例如 "file:///c:/test")用作 path 参数。

所有生成的路径将按以下方式进行规范化:

应始终使用正斜杠 (/) 字符作为路径分隔符。在 Windows 上,还可以使用反斜杠 (\) 字符,但这会导致应用程序在其它平台上无法正常工作。

在 Linux 上,文件名和目录名是区分大小写的。

参数

path:String — 要追加到此 File 对象的路径中的路径(如果 path 参数为相对路径);或者要返回的路径(如果 path 参数为绝对路径)。

返回
File — 指向生成的路径的新 File 对象。
事件详细信息
cancel 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.CANCEL
运行时版本:  1.0

在取消未处理的异步操作时调度。

Event.CANCEL 常量定义 cancel 事件对象的 type 属性的值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target对已取消其操作的对象的引用。
complete 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.COMPLETE
运行时版本:  1.0

在异步操作完成时调度。

Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target已完成加载的网络对象。
directoryListing 事件  
事件对象类型: flash.events.FileListEvent
属性 FileListEvent.type = flash.events.FileListEvent.DIRECTORY_LISTING
运行时版本:  1.0

当由于调用 getDirectoryListingAsync() 方法而提供目录列表时调度。

FileListEvent.DIRECTORY_LISTING 常量定义 directoryListing 事件的事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
files表示找到的文件和目录的 File 对象的数组。
targetFileListEvent 对象。

另请参见

ioError 事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR
运行时版本:  1.0

在执行异步文件操作期间发生错误时调度。

定义 ioError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
errorID与特定错误关联的引用编号(仅限 AIR)。
target发生输入/输出错误的网络对象。
text要显示为错误消息的文本。
securityError 事件  
事件对象类型: flash.events.SecurityErrorEvent
属性 SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR
运行时版本:  1.0

当操作违反安全限制时调度。

SecurityErrorEvent.SECURITY_ERROR 常量定义 securityError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target报告安全错误的网络对象。
text要显示为错误消息的文本。
select 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.SELECT
运行时版本:  1.0

当用户从文件浏览或目录浏览对话框中选择文件或目录时调度。

Event.SELECT 常量定义 select 事件对象的 type 属性的值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target 对象,已在其中选定了一个项目。
selectMultiple 事件  
事件对象类型: flash.events.FileListEvent
属性 FileListEvent.type = flash.events.FileListEvent.SELECT_MULTIPLE
运行时版本:  1.0

当用户从通过调用 browseForOpenMultiple() 方法打开的对话框中选择文件时调度。

FileListEvent.SELECT_MULTIPLE 常量定义 selectMultiple 事件的事件对象的 type 属性值。
属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
files表示所选文件的 File 对象的数组。
targetFileListEvent 对象。

另请参见