(仅限 AIR)
flash.filesystem
public class File
继承File Inheritance FileReference Inheritance EventDispatcher Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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

File 类扩展 FileReference 类。在 Flash® Player 和 Adobe® AIR 中可用的 FileReference 类表示指向文件的指针,但 File 类添加了一些属性和方法,出于安全方面的考虑,Flash Player 中(在浏览器中运行的 SWF 中)未公开这些属性和方法。

另请参见

FileStream


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

语言版本: ActionScript 3.0
运行时版本: AIR 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),则可以使用沙箱桥公开该功能。



实现
    public static function get applicationDirectory():File

另请参见

AIR-only applicationStorageDirectory属性 
applicationStorageDirectory:File  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 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 架构(如示例中所示)。



实现
    public static function get applicationStorageDirectory():File

示例
下面的代码创建一个 File 对象,该对象指向应用程序存储目录中的“images”子目录。
import flash.filesystem.File;

var tempFiles:File = File.applicationStorageDirectory;
tempFiles = tempFiles.resolvePath("images/");
trace(tempFiles.url); // app-storage:/images
AIR-only desktopDirectory属性 
desktopDirectory:File  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

用户桌面目录。



实现
    public static function get desktopDirectory():File

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

var files:Array = desktop.getDirectoryListing();

for (var i:uint = 0; i < files.length; i++) {
    trace(files[i].nativePath);
}
AIR-only documentsDirectory属性 
documentsDirectory:File  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

用户文档目录。

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



实现
    public static function get documentsDirectory():File

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

var directory:File = File.documentsDirectory;
directory = directory.resolvePath("AIR Test");

File.createDirectory(directory);
trace(directory.exists); // true
AIR-only exists属性 
exists:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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



实现
    public function get exists():Boolean

示例
下面的代码创建一个临时文件,然后将其删除,并使用 File.exists 属性来检查该文件是否存在。
import flash.filesystem.*;

var temp:File = File.createTempFile();
trace(temp.exists); // true
temp.deleteFile();
trace(temp.exists); // false
AIR-only icon属性 
icon:Icon  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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



实现
    public function get icon():Icon

示例
下面的代码显示如何在 icon 数组中查找具有最小高度的图像,并将 Bitmap 对象设置为该图像。
import flash.filesystem.File;
import flash.display.*;

var directory:File = File.documentsDirectory;
var bitmaps:Array = file.icon.bitmaps;
var bmpData:BitmapData = new BitmapData(1, 1);
for (var i:uint = 0; i < bitmaps.length; i++) {
    if (bitmaps[i].height > bmpData.height) {
        bmpData = file.icon.bitmaps[i];
    }
}
var iconBmp:Bitmap = new Bitmap(bmpData);
您可以将此 Bitmap 对象作为显示对象容器的子级(如 Sprite 对象或 Flex UIComponent 对象)进行添加。
AIR-only isDirectory属性 
isDirectory:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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



实现
    public function get isDirectory():Boolean

示例
下面的代码创建指向用户目录中文件和目录的 File 对象的数组,然后使用 isDirectory 属性仅列出指向目录(而不是文件)的那些 File 对象。
import flash.filesystem.*;

var userDirFiles:Array = File.userDirectory.getDirectoryListing();
for (var i:uint = 0; i < userDirFiles.length; i++) {
    if (userDirFiles[i].isDirectory) {
        trace(userDirFiles[i].nativePath);
    }
}
AIR-only isHidden属性 
isHidden:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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



实现
    public function get isHidden():Boolean

示例
下面的代码创建指向用户目录中文件和目录的 File 对象的数组,然后使用 isHidden 属性列出隐藏的文件和目录。
import flash.filesystem.*;

var userDirFiles:Array = File.userDirectory.getDirectoryListing();
for (var i:uint = 0; i < userDirFiles.length; i++) {
    if (userDirFiles[i].isHidden) {
        trace(userDirFiles[i].nativePath);
    }
}
AIR-only isPackage属性 
isPackage:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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



实现
    public function get isPackage():Boolean
AIR-only isSymbolicLink属性 
isSymbolicLink:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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

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



实现
    public function get isSymbolicLink():Boolean
AIR-only lineEnding属性 
lineEnding:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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



实现
    public static function get lineEnding():String

示例
下面的代码将一个字符串 (str) 写入文本文件,并使用 File.lineEnding 静态属性,用主机操作系统首选的行尾符来替换换行符的所有实例(在代码中用正则表达式 /\n/g 表示)。
import flash.filesystem.*;

var str:String = "Hello\n" + 
        "World\n";
str = str.replace(/\n/g, File.lineEnding);
var file:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTF(str);
fileStream.close();
AIR-only nativePath属性 
nativePath:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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



实现
    public function get nativePath():String
    public function set nativePath(value:String):void

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

示例
下面的代码显示 File 对象的 nativePath 属性和 url 属性之间的区别。注释将在示例 Windows 计算机上显示结果。
import flash.filesystem.File;

var docs:File = File.documentsDirectory;
trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents
trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
AIR-only parent属性 
parent:File  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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



实现
    public function get parent():File

示例
下面的代码使用 parent 属性显示包含临时文件的目录。
import flash.filesystem.File;

var tempFile:File = File.createTempDirectory();
trace(tempFile.parent.nativePath);
tempFile.deleteFile();
AIR-only separator属性 
separator:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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



实现
    public static function get separator():String

示例
下面的代码使用 getRelativePath() 方法获取目录和文件之间的相对路径。然后,代码使用 File.separator 静态属性,用操作系统所用的分隔符来替换路径中的正斜杠 (/) 字符,在 Windows 中为反斜杠 (\),在其他操作系统中为正斜杠。
import flash.filesystem.File;

var directory:File = File.documentsDirectory.resolvePath("Apollo Test");
var file:File = File.documentsDirectory.resolvePath("Apollo Test/employees/bob/test.txt");

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.1

可用于在此 File 位置使用的空间,以字节为单位。

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

目录或文件可用的空间通常与该目录或文件所在卷上的可用空间相同。不过,可用空间应考虑配额和各目录的限制。

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



实现
    public function get spaceAvailable():Number
AIR-only systemCharset属性 
systemCharset:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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



实现
    public static function get systemCharset():String

另请参见


示例
下面的代码打开一个文件(用户文档目录的 AIR Test 子目录中的 test.txt 文件),并使用 File.systemCharset 静态属性作为 FileStream 对象的 readMultiByte() 方法调用的 charSet 参数。
import flash.filesystem.File;

var file:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var str:String = fileStream.readMultiByte(file.size, File.systemCharset);
trace(str);
AIR-only url属性 
url:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

此文件路径的 URL。

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

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



实现
    public function get url():String
    public function set url(value:String):void

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

另请参见


示例
下面的代码显示 File 对象的 nativePath 属性和 url 属性之间的区别。注释将在示例 Windows 计算机上显示结果。
import flash.filesystem.File;

var docs:File = File.documentsDirectory;
trace(docs.nativePath); // C:\Documents and Settings\turing\My Documents
trace(docs.url); // file:///C:/Documents%20and%20Settings/turing/My%20Documents
AIR-only userDirectory属性 
userDirectory:File  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

用户目录。

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



实现
    public static function get userDirectory():File

示例
下面的代码输出用户目录的根级别包含的文件和目录的列表:
import flash.filesystem.File;

var files:Array = File.userDirectory.listDirectory();
for (var i:uint = 0; i < files.length; i++) {
    trace(files[i].nativePath);
}
构造函数详细信息
AIR-only File()构造函数
public function File(path:String = null)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

File 类的构造函数。

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

参数
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 参数的语法无效。

另请参见

方法详细信息
AIR-only browseForDirectory()方法
public function browseForDirectory(title:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

参数

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


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

另请参见


示例

下面的代码使用 File.browseForDirectory() 方法让用户选择一个目录。当选择目录时,此代码会在 trace() 输出中列出所选目录的内容。
import flash.filesystem.File;
import flash.events.Event;

var directory:File = File.documentsDirectory;

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

function directorySelected(event:Event):void 
{
    directory = event.target as File;
    var files:Array = directory.getDirectoryListing();
    for(var i:uint = 0; i < files.length; i++)
    {
        trace(files[i].name);
    }
}
AIR-only browseForOpen()方法 
public function browseForOpen(title:String, typeFilter:Array = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

参数

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


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

另请参见


示例

下面的代码使用 File.browseForOpen() 方法让用户选择一个文本文件。当选择此文件时,此代码将文件数据读入到字符串中。
import flash.filesystem.*;
import flash.events.Event;
import flash.net.FileFilter;

var fileToOpen:File = new File();
var txtFilter:FileFilter = new FileFilter("Text", "*.as;*.css;*.html;*.txt;*.xml");

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

function fileSelected(event:Event):void 
{
    var stream:FileStream = new FileStream();
    stream.open(event.target, FileMode.READ);
    var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
    trace(fileData);
}
AIR-only browseForOpenMultiple()方法 
public function browseForOpenMultiple(title:String, typeFilter:Array = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

参数

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


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

另请参见


示例

下面的代码使用 File.browseForOpenMultiple() 方法让用户选择多个文件。当选择多个文件时,此代码输出所选文件的路径。
import flash.filesystem.*;
import flash.events.FileListEvent;

var docsDir:File = File.documentsDirectory;
try
{
    docsDir.browseForOpenMultiple("Select Files");
    docsDir.addEventListener(FileListEvent.SELECT_MULTIPLE, filesSelected);
}
catch (error:Error)
{
    trace("Failed:", error.message);
}

function filesSelected(event:FileListEvent):void 
{
    for (var i:uint = 0; i < event.files.length; i++) 
    {
        trace(event.files[i].nativePath);
    }
}
AIR-only browseForSave()方法 
public function browseForSave(title:String):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

参数

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


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

另请参见


示例

下面的代码使用 File.browseForSave() 方法让用户选择用于保存文件的路径。在选择文件时,此代码将数据保存到所选的文件路径。
import flash.filesystem.*;
import flash.events.Event;

var docsDir:File = File.documentsDirectory;
try
{
    docsDir.browseForSave("Save As");
    docsDir.addEventListener(Event.SELECT, saveData);
}
catch (error:Error)
{
    trace("Failed:", error.message);
}

function saveData(event:Event):void 
{
    var newFile:File = event.target as File;
    var str:String = "Hello.";
    if (!newFile.exists)
    {
        var stream:FileStream = new FileStream();
        stream.open(newFile, FileMode.WRITE);
        stream.writeUTFBytes(str);
        stream.close();
    }
}
AIR-only cancel()方法 
override public function cancel():void

运行时版本: AIR 1.0

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

AIR-only canonicalize()方法 
public function canonicalize():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

规范化 File 路径。

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

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


示例

下面的代码显示如何使用 canonicalize() 方法查找目录名的正确大小写。运行此示例前,在您的计算机桌面上创建一个名为 AIR Test 的目录。
import flash.filesystem.*;

var path:File = File.desktopDirectory.resolvePath("air test");
trace(path.nativePath); 
path.canonicalize();
trace(path.nativePath); // ...\AIR Test

下面的代码显示如何使用 canonicalize() 方法基于 Windows 目录的短名称查找其长名称。此示例假定在 C: 驱动器的根目录中有一个 AIR Test 目录,并且系统已将短名称 AIR~1 分配给该目录。
import flash.filesystem.*;

var path:File = new File();
path.nativePath = "C:\\AIR~1";
path.canonicalize();
trace(path.nativePath); // C:\AIR Test
AIR-only clone()方法 
public function clone():File

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

返回
File
AIR-only copyTo()方法 
public function copyTo(newLocation:FileReference, overwrite:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 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 文件。
import flash.filesystem.File;
import flash.events.Event;

var sourceFile:FileReference = File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination:FileReference = File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.txt");

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

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

var sourceFile:File = File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.txt");

try 
{
    sourceFile.copyTo(destination, true);
}
catch (error:Error)
{
    trace("Error:", error.message);
}
AIR-only copyToAsync()方法 
public function copyToAsync(newLocation:FileReference, overwrite:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 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 文件。
import flash.filesystem.File;
import flash.events.Event;

var sourceFile:File = File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.txt");

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

function fileCopiedHandler(event:Event):void {
    trace("Done.");
}
AIR-only createDirectory()方法 
public function createDirectory():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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


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

示例

下面的代码将桌面上名为 test.txt 的文件移动到文档目录的 AIR Test 子目录中。调用 createDirectory() 方法以确保 AIR Test 目录存在后才移动此文件。
import flash.filesystem.*;

var source:File = File.desktopDirectory.resolvePath("test.txt");
var target:File = File.documentsDirectory.resolvePath("AIR Test/test.txt");
var targetParent:File = target.parent;
targetParent.createDirectory();
source.moveTo(target, true);
AIR-only createTempDirectory()方法 
public static function createTempDirectory():File

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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

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

另请参见


示例

下面的代码使用 createTempFile() 方法获取对新临时目录的引用。
import flash.File;

var temp:File = File.createTempDirectory();
trace(temp.nativePath);
每次运行此代码时都会创建一个新的(唯一的)文件。
AIR-only createTempFile()方法 
public static function createTempFile():File

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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

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

另请参见


示例

下面的代码使用 createTempFile() 方法获取对新临时文件的引用。
import flash.File;

var temp:File = File.createTempFile();
trace(temp.nativePath);
每次运行此代码时都会创建一个新的(唯一的)文件。
AIR-only deleteDirectory()方法 
public function deleteDirectory(deleteDirectoryContents:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

参数

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


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

另请参见


示例

下面的代码创建一个空目录,然后使用 deleteDirectory() 方法删除该目录。
import flash.filesystem.File;

var directory:File = File.documentsDirectory.resolvePath("Empty Junk Directory/");
File.createDirectory(directory);
trace(directory.exists); // true
directory.deleteDirectory();
trace(directory.exists); // false
AIR-only deleteDirectoryAsync()方法 
public function deleteDirectoryAsync(deleteDirectoryContents:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

参数

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


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

另请参见

AIR-only deleteFile()方法 
public function deleteFile():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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


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

另请参见


示例

下面的代码创建一个临时文件,然后调用 deleteFile() 方法以删除该文件。
import flash.filesystem.*;

var file:File = File.createTempFile();
trace(file.exists); // true
file.deleteFile();
trace(file.exists); // false
AIR-only deleteFileAsync()方法 
public function deleteFileAsync():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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


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

另请参见

AIR-only getDirectoryListing()方法 
public function getDirectoryListing():Array

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

返回
Array — File 对象的数组。

另请参见


示例

下面的代码显示如何使用 getDirectoryListing() 方法枚举用户目录的内容。
import flash.filesystem.File;

var directory:File = File.userDirectory;
var list:Array = directory.getDirectoryListing();
for (var i:uint = 0; i < list.length; i++) {
    trace(list[i].nativePath);
}
AIR-only getDirectoryListingAsync()方法 
public function getDirectoryListingAsync():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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


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

另请参见


示例

下面的代码显示如何使用 getDirectoryListingAsync() 方法枚举用户目录的内容。
import flash.filesystem.File;
import flash.events.FileListEvent;

var directory:File = File.userDirectory;
directory.getDirectoryListingAsync();
directory.addEventListener(FileListEvent.DIRECTORY_LISTING, directoryListingHandler);

function directoryListingHandler(event:FileListEvent):void {
    var list:Array = event.files;
    for (var i:uint = 0; i < list.length; i++) {
        trace(list[i].nativePath);
    }
}
AIR-only getRelativePath()方法 
public function getRelativePath(ref:FileReference, useDotDot:Boolean = false):String

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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

参数

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

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

引发
ArgumentError — 该引用为 null
 
SecurityError — 调用方不在应用程序安全沙箱中。
AIR-only getRootDirectories()方法 
public static function getRootDirectories():Array

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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

示例

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

for (var i:uint = 0; i < rootDirs.length; i++) {
    trace(rootDirs[i].nativePath);
}
AIR-only moveTo()方法 
public function moveTo(newLocation:FileReference, overwrite:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 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 文件。
import flash.filesystem.File;
import flash.events.Event;

var sourceFile:File = File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("Apollo Test/test2.txt");

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

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

var sourceFile:File = File.documentsDirectory;
sourceFile = sourceFile.resolvePath("AIR Test/test1.txt");
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("AIR Test/Results/test1.txt");

try 
{
    sourceFile.moveTo(destination, true);
}
catch (error:Error)
{
    trace("Error:" error.message);
}
AIR-only moveToAsync()方法 
public function moveToAsync(newLocation:FileReference, overwrite:Boolean = false):void

语言版本: ActionScript 3.0
运行时版本: AIR 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 文件。
import flash.filesystem.File;
import flash.events.Event;

var sourceFile:File = File.documentsDirectory;
sourceFile = sourceFile.resolvePath("Apollo Test/test1.txt");
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("Apollo Test/test2.txt");

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

function fileMoveCompleteHandler(event:Event):void 
{
    trace("Done.")
}
AIR-only moveToTrash()方法 
public function moveToTrash():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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


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

另请参见

AIR-only moveToTrashAsync()方法 
public function moveToTrashAsync():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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


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

另请参见

AIR-only resolvePath()方法 
public function resolvePath(path:String):File

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

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

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

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

在 Mac OS 和 Linux 中使用正斜杠 (/) 字符作为路径分隔符。在 Windows 上,可以使用正斜杠 (/) 字符或反斜杠 (\) 字符。

参数

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

返回
File — 指向生成的路径的新 File 对象。
事件详细信息
AIR-only cancel 事件
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.CANCEL

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 对已取消其操作的对象的引用。
AIR-only complete 事件  
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.COMPLETE

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

在异步操作完成时调度。

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

此事件具有以下属性:

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
files 表示找到的文件和目录的 File 对象的数组。
target FileListEvent 对象。

另请参见

AIR-only ioError 事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

此事件具有以下属性:

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

此事件具有以下属性:

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

此事件具有以下属性:

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

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

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

另请参见