Most visited

Recently visited

Added in API level 1

File

public class File
extends Object implements Serializable, Comparable<File>

java.lang.Object
   ↳ java.io.File


文件和目录路径名的抽象表示。

用户界面和操作系统使用系统相关的路径名字符串来命名文件和目录。 该课程提供了一个抽象的,系统无关的层级路径名称视图。 抽象路径名有两个组成部分:

  1. An optional system-dependent prefix string, such as a disk-drive specifier, "/" for the UNIX root directory, or "\\\\" for a Microsoft Windows UNC pathname, and
  2. A sequence of zero or more string names.
The first name in an abstract pathname may be a directory name or, in the case of Microsoft Windows UNC pathnames, a hostname. Each subsequent name in an abstract pathname denotes a directory; the last name may denote either a directory or a file. The empty abstract pathname has no prefix and an empty name sequence.

将路径名字符串转换为抽象路径名或从抽象路径名转换为固有的系统相关。 将抽象路径名转换为路径名字符串时,每个名称都由默认分隔符的单个副本与下一个名称分隔开。 缺省名称分隔符字符由系统属性file.separator定义,并且可在separator的公共静态字段separatorseparatorChar中使用。 当路径名字符串被转换为抽象路径名时,其内部的名称可能会被默认的名称分隔符字符或基础系统支持的任何其他名称分隔符字符分隔开。

无论是抽象还是字符串形式,路径名都可以是绝对路径或相对路径。 绝对路径名是完整的,因为不需要其他信息来定位它表示的文件。 相反,相对路径名必须根据从其他路径名获取的信息来解释。 默认情况下, java.io软件包中的类总是针对当前用户目录解析相对路径名。 此目录由系统属性user.dir命名,通常是调用Java虚拟机的目录。

通过调用getParent()方法可获得抽象路径名的父项 ,并且该路径名的前缀和路径名名称序列中除最后一个以外的每个名称都getParent()组成。 每个目录的绝对路径名是任何File对象的祖先,其绝对抽象路径名以该目录的绝对路径名开头。 例如,由抽象路径名"/usr"表示的目录是由路径名"/usr/local/bin"表示的目录的祖先。

前缀概念用于处理UNIX平台上的根目录,以及Microsoft Windows平台上的驱动器说明符,根目录和UNC路径名,如下所示:

这个类的实例可能表示或不表示实际的文件系统对象,如文件或目录。 如果它确实表示这样一个对象,那么该对象驻留在一个分区中 分区是文件系统的特定于操作系统的存储部分。 单个存储设备(例如物理磁盘驱动器,闪存,CD-ROM)可能包含多个分区。 该对象(如果有的话)将由该路径名的绝对形式的某个祖先驻留在分区named上

文件系统可以对实际文件系统对象上的某些操作实施限制,例如读取,写入和执行。 这些限制统称为访问权限 文件系统可能对单个对象具有多组访问权限。 例如,一套可能适用于对象的所有者 ,另一套可能适用于所有其他用户。 对象的访问权限可能会导致此类中的某些方法失败。

File类的实例是不可变的; 也就是说,一旦创建,由File对象表示的抽象路径File永远不会改变。

在Android上,文件名的底层文件系统编码始终是UTF-8。

Summary

Fields

public static final String pathSeparator

为方便起见,系统相关的路径分隔符字符表示为字符串。

public static final char pathSeparatorChar

系统相关的路径分隔符。

public static final String separator

为方便起见,系统相关的默认名称分隔符(以字符串表示)。

public static final char separatorChar

系统相关的默认名称分隔符字符。

Public constructors

File(String pathname)

通过将给定的路径名字符串转换为抽象路径名创建一个新的 File实例。

File(String parent, String child)

从父路径名字符串和子路径名字符串创建一个新的 File实例。

File(File parent, String child)

从父抽象路径名和子路径名字符串创建一个新的 File实例。

File(URI uri)

通过将给定的 file: URI转换为抽象路径名创建一个新的 File实例。

Public methods

boolean canExecute()

测试应用程序是否可以执行由此抽象路径名表示的文件。

boolean canRead()

测试应用程序是否可以读取由此抽象路径名表示的文件。

boolean canWrite()

测试应用程序是否可以修改由此抽象路径名表示的文件。

int compareTo(File pathname)

按照字典顺序比较两个抽象路径。

boolean createNewFile()

当且仅当具有该名称的文件尚不存在时,以原子方式创建由此抽象路径名命名的新的空文件。

static File createTempFile(String prefix, String suffix, File directory)

在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串来生成其名称。

static File createTempFile(String prefix, String suffix)

在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀来生成其名称。

boolean delete()

删除由此抽象路径名表示的文件或目录。

void deleteOnExit()

请求在此虚拟机终止时删除由此抽象路径名表示的文件或目录。

boolean equals(Object obj)

测试此抽象路径名是否与给定对象相等。

boolean exists()

测试此抽象路径名表示的文件或目录是否存在。

File getAbsoluteFile()

返回此抽象路径名的绝对形式。

String getAbsolutePath()

返回此文件的绝对路径。

File getCanonicalFile()

返回此抽象路径名的规范形式。

String getCanonicalPath()

返回此抽象路径名的规范路径名字符串。

long getFreeSpace()

通过此抽象路径名返回分区 named中的未分配字节数。

String getName()

返回由此抽象路径名表示的文件或目录的名称。

String getParent()

返回此抽象路径名父级的路径名字符串,如果此路径名未命名父目录,则返回 null

File getParentFile()

如果此路径名未命名父目录,则返回此抽象路径名的父级的抽象路径名,或 null

String getPath()

将此抽象路径名转换为路径名字符串。

long getTotalSpace()

通过此抽象路径名返回分区 named的大小。

long getUsableSpace()

以此抽象路径名返回分区 named上此虚拟机的可用字节数。

int hashCode()

计算此抽象路径名的哈希码。

boolean isAbsolute()

测试这个抽象路径名是绝对的。

boolean isDirectory()

测试此抽象路径名表示的文件是否为目录。

boolean isFile()

测试此抽象路径名表示的文件是否是普通文件。

boolean isHidden()

测试由此抽象路径名命名的文件是否为隐藏文件。

long lastModified()

返回上次修改此抽象路径名表示的文件的时间。

long length()

返回由此抽象路径名表示的文件的长度。

String[] list(FilenameFilter filter)

返回一个字符串数组,命名该抽象路径名表示的目录中的文件和目录,以满足指定的过滤器。

String[] list()

返回一个字符串数组,用于命名由此抽象路径名表示的目录中的文件和目录。

File[] listFiles()

返回表示由此抽象路径名表示的目录中的文件的抽象路径名数组。

File[] listFiles(FileFilter filter)

返回表示由该抽象路径名表示的目录中的文件和目录的抽象路径名数组,该抽象路径名满足指定的过滤器。

File[] listFiles(FilenameFilter filter)

返回表示由该抽象路径名表示的目录中的文件和目录的抽象路径名数组,该抽象路径名满足指定的过滤器。

static File[] listRoots()

返回文件系统根。

boolean mkdir()

创建由此抽象路径名命名的目录。

boolean mkdirs()

创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。

boolean renameTo(File dest)

重命名由此抽象路径名表示的文件。

boolean setExecutable(boolean executable, boolean ownerOnly)

设置此抽象路径名的所有者或每个人的执行权限。

boolean setExecutable(boolean executable)

设置此抽象路径名的所有者执行权限的便捷方法。

boolean setLastModified(long time)

设置由此抽象路径名命名的文件或目录的最后修改时间。

boolean setReadOnly()

标记由此抽象路径名命名的文件或目录,以便只允许读取操作。

boolean setReadable(boolean readable)

设置此抽象路径名的所有者读取权限的便捷方法。

boolean setReadable(boolean readable, boolean ownerOnly)

设置此抽象路径名的所有者或每个人的读取权限。

boolean setWritable(boolean writable, boolean ownerOnly)

设置此抽象路径名的所有者或每个人的写入权限。

boolean setWritable(boolean writable)

设置此抽象路径名的所有者写入权限的便捷方法。

String toString()

返回此抽象路径名的路径名字符串。

URI toURI()

构造一个表示此抽象路径名的URI,即 file:

URL toURL()

此方法在API级别9中已弃用。此方法不会自动转义URL中非法的字符。 建议在新的代码转换的抽象路径到URL通过先转换成URI,经由toURI方法,然后经由转换URI为URL URI.toURL方法。

Inherited methods

From class java.lang.Object
From interface java.lang.Comparable

Fields

pathSeparator

Added in API level 1
String pathSeparator

为方便起见,系统相关的路径分隔符字符表示为字符串。 该字符串包含单个字符,即pathSeparatorChar

pathSeparatorChar

Added in API level 1
char pathSeparatorChar

系统相关的路径分隔符。 此字段已初始化为包含系统属性值path.separator的第一个字符。 该字符用于分隔作为路径列表给出的文件序列中的文件名。 在UNIX系统上,这个字符是':' ; 在Microsoft Windows系统上它是';'

也可以看看:

separator

Added in API level 1
String separator

为方便起见,系统相关的默认名称分隔符(以字符串表示)。 该字符串包含单个字符,即separatorChar

separatorChar

Added in API level 1
char separatorChar

系统相关的默认名称分隔符字符。 该字段被初始化为包含系统属性file.separator的值的第一个字符。 在UNIX系统上,这个字段的值是'/' ; 在Microsoft Windows系统上它是'\\'

也可以看看:

Public constructors

File

Added in API level 1
File (String pathname)

通过将给定的路径名字符串转换为抽象路径名创建一个新的File实例。 如果给定的字符串是空字符串,那么结果是空的抽象路径名。

Parameters
pathname String: A pathname string
Throws
NullPointerException If the pathname argument is null

File

Added in API level 1
File (String parent, 
                String child)

从父路径名字符串和子路径名字符串创建一个新的 File实例。

如果 parentnull那么将创建新的 File实例,就像调用给定的 child路径名字符串上的单参数 File构造函数 child

否则, parent路径名字符串被用来表示目录, child路径名字符串被用来表示目录或文件。 如果child路径名字符串是绝对路径,则它将以依赖于系统的方式转换为相对路径名。 如果parent是空字符串,则通过将child转换为抽象路径名并根据与系统相关的默认目录解析结果来创建新的File实例。 否则,每个路径名字符串都会被转换为一个抽象路径名,并且该子抽象路径名会根据父级进行解析。

Parameters
parent String: The parent pathname string
child String: The child pathname string
Throws
NullPointerException If child is null

File

Added in API level 1
File (File parent, 
                String child)

从父抽象路径名和子路径名字符串创建一个新的 File实例。

如果 parentnull则创建新的 File实例,就像调用给定的 child路径名字符串上的单参数 File构造函数 child

否则,采用parent抽象路径名表示目录, child路径名字符串用于表示目录或文件。 如果child路径名字符串是绝对路径,则它将以依赖于系统的方式转换为相对路径名。 如果parent是空的抽象路径名,则通过将child转换为抽象路径名并根据系统相关的默认目录解析结果来创建新的File实例。 否则,每个路径名字符串都会被转换为一个抽象路径名,并且该子抽象路径名会根据父级进行解析。

Parameters
parent File: The parent abstract pathname
child String: The child pathname string
Throws
NullPointerException If child is null

File

Added in API level 1
File (URI uri)

将给定的 file: URI转换为抽象路径名,创建一个新的 File实例。

file: URI的确切形式是依赖于系统的,因此由此构造函数执行的转换也是与系统相关的。

对于给定的抽象路径名称 f ,可以保证

new File(  f .toURI()).equals(  f .getAbsoluteFile())
so long as the original abstract pathname, the URI, and the new abstract pathname are all created in (possibly different invocations of) the same Java virtual machine. This relationship typically does not hold, however, when a file: URI that is created in a virtual machine on one operating system is converted into an abstract pathname in a virtual machine on a different operating system.

Parameters
uri URI: An absolute, hierarchical URI with a scheme equal to "file", a non-empty path component, and undefined authority, query, and fragment components
Throws
NullPointerException If uri is null
IllegalArgumentException If the preconditions on the parameter do not hold

也可以看看:

Public methods

canExecute

Added in API level 9
boolean canExecute ()

测试应用程序是否可以执行由此抽象路径名表示的文件。

Returns
boolean true if and only if the abstract pathname exists and the application is allowed to execute the file
Throws
SecurityException If a security manager exists and its checkExec(java.lang.String) method denies execute access to the file

canRead

Added in API level 1
boolean canRead ()

测试应用程序是否可以读取由此抽象路径名表示的文件。

Returns
boolean true if and only if the file specified by this abstract pathname exists and can be read by the application; false otherwise
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method denies read access to the file

canWrite

Added in API level 1
boolean canWrite ()

测试应用程序是否可以修改由此抽象路径名表示的文件。

Returns
boolean true if and only if the file system actually contains a file denoted by this abstract pathname and the application is allowed to write to the file; false otherwise.
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the file

compareTo

Added in API level 1
int compareTo (File pathname)

按照字典顺序比较两个抽象路径。 此方法定义的顺序取决于底层系统。 在UNIX系统中,字母大小写在比较路径名称时很重要; 在Microsoft Windows系统上它不是。

Parameters
pathname File: The abstract pathname to be compared to this abstract pathname
Returns
int Zero if the argument is equal to this abstract pathname, a value less than zero if this abstract pathname is lexicographically less than the argument, or a value greater than zero if this abstract pathname is lexicographically greater than the argument

createNewFile

Added in API level 1
boolean createNewFile ()

当且仅当具有该名称的文件尚不存在时,以原子方式创建由此抽象路径名命名的新的空文件。 检查文件是否存在以及文件是否存在(如果文件不存在)的检查是针对可能影响文件的所有其他文件系统活动的原子操作。

注意:此方法应用于文件锁定,因为生成的协议无法可靠地工作。 应该使用FileLock设施。

Returns
boolean true if the named file does not exist and was successfully created; false if the named file already exists
Throws
IOException If an I/O error occurred
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the file

createTempFile

Added in API level 1
File createTempFile (String prefix, 
                String suffix, 
                File directory)

在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串来生成其名称。 如果此方法成功返回,则可以保证:

  1. The file denoted by the returned abstract pathname did not exist before this method was invoked, and
  2. Neither this method nor any of its variants will return the same abstract pathname again in the current invocation of the virtual machine.
This method provides only part of a temporary-file facility. To arrange for a file created by this method to be deleted automatically, use the deleteOnExit() method.

参数prefix必须至少有三个字符长。 建议前缀是一个简短有意义的字符串,例如"hjb""mail" 参数suffix可能为null ,在这种情况下将使用后缀".tmp"

要创建新文件,可以首先调整前缀和后缀以适应底层平台的限制。 如果前缀过长,则会被截断,但前三个字符将始终保留。 如果后缀太长,那么它也会被截断,但如果它以句点字符( '.' )开头,那么句点和它后面的前三个字符将始终保留。 一旦进行了这些调整,将通过连接前缀,五个或更多内部生成的字符和后缀来生成新文件的名称。

如果directory参数是null则将使用系统相关的默认临时文件目录。 默认的临时文件目录由系统属性java.io.tmpdir指定。 在UNIX系统上,此属性的默认值通常为"/tmp""/var/tmp" ; 在Microsoft Windows系统上,它通常是"C:\\WINNT\\TEMP" 当调用Java虚拟机时,可能会给此系统属性赋予不同的值,但对此属性的编程更改不保证对此方法使用的临时目录有任何影响。

Parameters
prefix String: The prefix string to be used in generating the file's name; must be at least three characters long
suffix String: The suffix string to be used in generating the file's name; may be null, in which case the suffix ".tmp" will be used
directory File: The directory in which the file is to be created, or null if the default temporary-file directory is to be used
Returns
File An abstract pathname denoting a newly-created empty file
Throws
IllegalArgumentException If the prefix argument contains fewer than three characters
IOException If a file could not be created
SecurityException If a security manager exists and its checkWrite(java.lang.String) method does not allow a file to be created

createTempFile

Added in API level 1
File createTempFile (String prefix, 
                String suffix)

在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀来生成其名称。 调用此方法相当于调用createTempFile(prefix, suffix, null)

Parameters
prefix String: The prefix string to be used in generating the file's name; must be at least three characters long
suffix String: The suffix string to be used in generating the file's name; may be null, in which case the suffix ".tmp" will be used
Returns
File An abstract pathname denoting a newly-created empty file
Throws
IllegalArgumentException If the prefix argument contains fewer than three characters
IOException If a file could not be created
SecurityException If a security manager exists and its checkWrite(java.lang.String) method does not allow a file to be created

delete

Added in API level 1
boolean delete ()

删除由此抽象路径名表示的文件或目录。 如果这个路径名表示一个目录,那么该目录必须是空的才能被删除。

Returns
boolean true if and only if the file or directory is successfully deleted; false otherwise
Throws
SecurityException If a security manager exists and its checkDelete(String) method denies delete access to the file

deleteOnExit

Added in API level 1
void deleteOnExit ()

请求在此虚拟机终止时删除由此抽象路径名表示的文件或目录。 文件(或目录)按照它们注册的相反顺序删除。 调用此方法删除已被注册为删除的文件或目录不起作用。 正如Java语言规范所定义的那样,删除将仅用于正常终止虚拟机。

一旦请求删除,就不可能取消请求。 因此应谨慎使用此方法。

注意:此方法应用于文件锁定,因为生成的协议无法可靠地工作。 应该使用FileLock设施。

请注意,在Android上,应用程序生命周期不包括虚拟机终止,因此调用此方法不会确保删除文件 相反,你应该使用以下最合适的:

  • Use a finally clause to manually invoke delete().
  • Maintain your own set of files to delete, and process it at an appropriate point in your application's lifecycle.
  • Use the Unix trick of deleting the file as soon as all readers and writers have opened it. No new readers/writers will be able to access the file, but all existing ones will still have access until the last one closes the file.

Throws
SecurityException If a security manager exists and its checkDelete(String) method denies delete access to the file

也可以看看:

equals

Added in API level 1
boolean equals (Object obj)

测试此抽象路径名是否与给定对象相等。 返回true当且仅当参数不是null并且是与此抽象路径名表示相同文件或目录的抽象路径名。 两个抽象路径名是否相等取决于底层系统。 在UNIX系统中,字母大小写在比较路径名称时很重要; 在Microsoft Windows系统上它不是。

Parameters
obj Object: The object to be compared with this abstract pathname
Returns
boolean true if and only if the objects are the same; false otherwise

exists

Added in API level 1
boolean exists ()

测试此抽象路径名表示的文件或目录是否存在。

Returns
boolean true if and only if the file or directory denoted by this abstract pathname exists; false otherwise
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method denies read access to the file or directory

getAbsoluteFile

Added in API level 1
File getAbsoluteFile ()

返回此抽象路径名的绝对形式。 相当于new File(this.getAbsolutePath())

Returns
File The absolute abstract pathname denoting the same file or directory as this abstract pathname
Throws
SecurityException If a required system property value cannot be accessed.

getAbsolutePath

Added in API level 1
String getAbsolutePath ()

返回此文件的绝对路径。 绝对路径是从文件系统的根开始的路径。 在Android上,只有一个根: /

绝对路径的一个常见用途是将路径作为命令行参数传递给 Process ,以除去相对路径隐含的要求,即子级必须具有与其父级相同的工作目录。

Returns
String The absolute pathname string denoting the same file or directory as this abstract pathname

也可以看看:

getCanonicalFile

Added in API level 1
File getCanonicalFile ()

返回此抽象路径名的规范形式。 相当于new File(this.getCanonicalPath())

Returns
File The canonical pathname string denoting the same file or directory as this abstract pathname
Throws
IOException If an I/O error occurs, which is possible because the construction of the canonical pathname may require filesystem queries
SecurityException If a required system property value cannot be accessed, or if a security manager exists and its checkRead(FileDescriptor) method denies read access to the file

也可以看看:

getCanonicalPath

Added in API level 1
String getCanonicalPath ()

返回此抽象路径名的规范路径名字符串。

规范的路径名既是绝对的也是唯一的。 规范形式的确切定义是与系统相关的。 如果需要,此方法首先将此路径名转换为绝对形式,就像调用getAbsolutePath()方法一样,然后以系统依赖的方式将其映射到其唯一形式。 这通常包括从路径名中删除冗余名称,例如"."".." ,解析符号链接(在UNIX平台上)并将驱动器号转换为标准大小写(在Microsoft Windows平台上)。

表示现有文件或目录的每个路径名都具有唯一的规范形式。 表示不存在的文件或目录的每个路径名也具有唯一的规范形式。 在创建文件或目录后,不存在的文件或目录的路径名的规范形式可能与相同路径名的规范形式不同。 同样,在删除文件或目录后,现有文件或目录的路径名的规范形式可能与相同路径名的规范形式不同。

Returns
String The canonical pathname string denoting the same file or directory as this abstract pathname
Throws
IOException If an I/O error occurs, which is possible because the construction of the canonical pathname may require filesystem queries
SecurityException If a required system property value cannot be accessed, or if a security manager exists and its checkRead(FileDescriptor) method denies read access to the file

也可以看看:

getFreeSpace

Added in API level 9
long getFreeSpace ()

通过此抽象路径名返回分区 named中的未分配字节数。

返回的未分配字节数是一个提示,但不是保证,可以使用大部分或任何这些字节。 这次调用后,未分配的字节数很可能是正确的。 任何外部I / O操作(包括在此虚拟机之外的系统上进行的操作)可能会使其不准确。 此方法不保证对此文件系统的写入操作将会成功。

Returns
long The number of unallocated bytes on the partition or 0L if the abstract pathname does not name a partition. This value will be less than or equal to the total file system size returned by getTotalSpace().
Throws
SecurityException If a security manager has been installed and it denies RuntimePermission("getFileSystemAttributes") or its checkRead(String) method denies read access to the file named by this abstract pathname

getName

Added in API level 1
String getName ()

返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名称。 如果路径名的序列号为空,则返回空字符串。

Returns
String The name of the file or directory denoted by this abstract pathname, or the empty string if this pathname's name sequence is empty

getParent

Added in API level 1
String getParent ()

返回此抽象路径名父级的路径名字符串,如果此路径名未命名父目录,则返回 null

抽象路径名的父节点由路径名的前缀(如果有)和路径名名称序列中除最后一个以外的每个名称组成。 如果名称序列为空,则路径名不会命名父目录。

Returns
String The pathname string of the parent directory named by this abstract pathname, or null if this pathname does not name a parent

getParentFile

Added in API level 1
File getParentFile ()

返回此抽象路径名父级的抽象路径名,如果此路径名未命名父目录,则返回 null

抽象路径名的父节点由路径名的前缀(如果有)和路径名名称序列中除最后一个以外的每个名称组成。 如果名称序列为空,则路径名不会命名父目录。

Returns
File The abstract pathname of the parent directory named by this abstract pathname, or null if this pathname does not name a parent

getPath

Added in API level 1
String getPath ()

将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character来分隔名称序列中的名称。

Returns
String The string form of this abstract pathname

getTotalSpace

Added in API level 9
long getTotalSpace ()

通过此抽象路径名返回分区 named的大小。

Returns
long The size, in bytes, of the partition or 0L if this abstract pathname does not name a partition
Throws
SecurityException If a security manager has been installed and it denies RuntimePermission("getFileSystemAttributes") or its checkRead(String) method denies read access to the file named by this abstract pathname

getUsableSpace

Added in API level 9
long getUsableSpace ()

通过此抽象路径名返回分区named上此虚拟机的可用字节数。 在可能的情况下,此方法会检查写入权限和其他操作系统限制,因此通常会提供更准确的估计,比getFreeSpace()实际可以写入多少新数据。

返回的可用字节数是提示,但不是保证,可以使用大部分或任何这些字节。 这次调用后,未分配的字节数很可能是正确的。 任何外部I / O操作(包括在此虚拟机之外的系统上进行的操作)可能会使其不准确。 此方法不保证对此文件系统的写入操作将会成功。

在Android(以及其他基于Unix的系统)上,此方法返回非root用户可用的空闲字节数,无论您是否实际上以root用户身份运行,也不管是否可能适用于任何配额或其他限制用户。 getFreeSpace方法返回可能可用于根的字节数。)

Returns
long The number of available bytes on the partition or 0L if the abstract pathname does not name a partition. On systems where this information is not available, this method will be equivalent to a call to getFreeSpace().
Throws
SecurityException If a security manager has been installed and it denies RuntimePermission("getFileSystemAttributes") or its checkRead(String) method denies read access to the file named by this abstract pathname

hashCode

Added in API level 1
int hashCode ()

计算此抽象路径名的哈希码。 因为抽象路径名的平等本质上依赖于系统,所以他们的哈希码的计算也是如此。 在UNIX系统上,抽象路径名的哈希码等于其路径名字符串和十进制值1234321的独占哈希码。 在Microsoft Windows系统上,哈希码等于其路径名字符串转换为小写字母和十进制值1234321的排他哈希码。 在降低路径名字符串时不考虑区域设置。

Returns
int A hash code for this abstract pathname

isAbsolute

Added in API level 1
boolean isAbsolute ()

测试这个抽象路径名是绝对的。 绝对路径名的定义与系统有关。 在Android上,绝对路径以字符“/”开头。

Returns
boolean true if this abstract pathname is absolute, false otherwise

isDirectory

Added in API level 1
boolean isDirectory ()

测试此抽象路径名表示的文件是否为目录。

Returns
boolean true if and only if the file denoted by this abstract pathname exists and is a directory; false otherwise
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method denies read access to the file

isFile

Added in API level 1
boolean isFile ()

测试此抽象路径名表示的文件是否是普通文件。 如果文件不是目录,并且此外还满足其他系统相关标准,则该文件是正常的 任何由Java应用程序创建的非目录文件都将保证为普通文件。

Returns
boolean true if and only if the file denoted by this abstract pathname exists and is a normal file; false otherwise
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method denies read access to the file

isHidden

Added in API level 1
boolean isHidden ()

测试由此抽象路径名命名的文件是否为隐藏文件。 隐藏的确切定义是依赖于系统的。 在UNIX系统上,如果文件的名称以句点字符开头( '.' ),则认为它是隐藏的。 在Microsoft Windows系统上,如果文件在文件系统中被标记为文件,则认为它是隐藏的。

Returns
boolean true if and only if the file denoted by this abstract pathname is hidden according to the conventions of the underlying platform
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method denies read access to the file

lastModified

Added in API level 1
long lastModified ()

返回上次修改此抽象路径名表示的文件的时间。

Returns
long A long value representing the time the file was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970), or 0L if the file does not exist or if an I/O error occurs
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method denies read access to the file

length

Added in API level 1
long length ()

返回由此抽象路径名表示的文件的长度。 如果此路径名表示目录,则返回值未指定。

Returns
long The length, in bytes, of the file denoted by this abstract pathname, or 0L if the file does not exist. Some operating systems may return 0L for pathnames denoting system-dependent entities such as devices or pipes.
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method denies read access to the file

list

Added in API level 1
String[] list (FilenameFilter filter)

返回一个字符串数组,命名该抽象路径名表示的目录中的文件和目录,以满足指定的过滤器。 除了返回的数组中的字符串必须满足过滤器之外,此方法的行为与list()方法的行为相同。 如果给定的filternull则接受所有名称。 否则,当且仅当在此抽象路径名FilenameFilter.accept(File, String)滤器的FilenameFilter.accept(File, String)方法以及它所指示的目录中的文件或目录名称的值为true时,名称才会满足过滤器。

Parameters
filter FilenameFilter: A filename filter
Returns
String[] An array of strings naming the files and directories in the directory denoted by this abstract pathname that were accepted by the given filter. The array will be empty if the directory is empty or if no names were accepted by the filter. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.
Throws
SecurityException If a security manager exists and its checkRead(String) method denies read access to the directory

list

Added in API level 1
String[] list ()

返回一个字符串数组,用于命名由此抽象路径名表示的目录中的文件和目录。

如果此抽象路径名不表示目录,则此方法返回null 否则,返回一个字符串数组,一个用于目录中的每个文件或目录。 结果中不包含表示目录本身和目录的父目录的名称。 每个字符串都是文件名而不是完整的路径。

不能保证结果数组中的名称字符串将以任何特定的顺序出现; 他们并不特别保证按字母顺序出现。

Returns
String[] An array of strings naming the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.
Throws
SecurityException If a security manager exists and its checkRead(String) method denies read access to the directory

listFiles

Added in API level 1
File[] listFiles ()

返回表示由此抽象路径名表示的目录中的文件的抽象路径名数组。

如果此抽象路径名不表示目录,则此方法返回null 否则,将返回一个File对象数组,每个文件或目录对应一个目录。 表示目录本身和目录的父目录的路径名不包含在结果中。 每个生成的抽象路径名都是使用File(File, String)构造函数从此抽象路径名构建而来的。 因此,如果这个路径名是绝对的,那么每个结果路径名都是绝对的; 如果此路径名是相对的,则每个生成的路径名将相对于相同的目录。

不能保证结果数组中的名称字符串将以任何特定的顺序出现; 他们并不特别保证按字母顺序出现。

Returns
File[] An array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.
Throws
SecurityException If a security manager exists and its checkRead(String) method denies read access to the directory

listFiles

Added in API level 1
File[] listFiles (FileFilter filter)

返回表示由该抽象路径名表示的目录中的文件和目录的抽象路径名数组,该抽象路径名满足指定的过滤器。 除了返回数组中的路径名必须满足过滤器之外,此方法的行为与listFiles()方法的行为相同。 如果给定filternull则接受所有路径名。 否则,当且仅当在路径名trueFileFilter.accept(File)方法时产生值true时,路径名满足过滤器。

Parameters
filter FileFilter: A file filter
Returns
File[] An array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.
Throws
SecurityException If a security manager exists and its checkRead(String) method denies read access to the directory

listFiles

Added in API level 1
File[] listFiles (FilenameFilter filter)

返回表示由该抽象路径名表示的目录中的文件和目录的抽象路径名数组,该抽象路径名满足指定的过滤器。 除了返回数组中的路径名必须满足过滤器之外,此方法的行为与listFiles()方法的行为相同。 如果给定的filternull则接受所有路径名。 否则,当且仅当在该抽象路径名FilenameFilter.accept(File, String)滤器的FilenameFilter.accept(File, String)方法以及它所指示的目录中的文件或目录的名称的值为true时,路径名满足该过滤器。

Parameters
filter FilenameFilter: A filename filter
Returns
File[] An array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.
Throws
SecurityException If a security manager exists and its checkRead(String) method denies read access to the directory

listRoots

Added in API level 1
File[] listRoots ()

返回文件系统根。 在Android和其他Unix系统上,有一个根, /

Returns
File[]

mkdir

Added in API level 1
boolean mkdir ()

创建由此抽象路径名命名的目录。

Returns
boolean true if and only if the directory was created; false otherwise
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method does not permit the named directory to be created

mkdirs

Added in API level 1
boolean mkdirs ()

创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。 请注意,如果此操作失败,则可能会成功创建一些必需的父目录。

Returns
boolean true if and only if the directory was created, along with all necessary parent directories; false otherwise
Throws
SecurityException If a security manager exists and its checkRead(java.lang.String) method does not permit verification of the existence of the named directory and all necessary parent directories; or if the checkWrite(java.lang.String) method does not permit the named directory and all necessary parent directories to be created

renameTo

Added in API level 1
boolean renameTo (File dest)

重命名由此抽象路径名表示的文件。

许多失败是可能的。 一些更可能的故障包括:

  • Write permission is required on the directories containing both the source and destination paths.
  • Search permission is required for all parents of both paths.
  • Both paths be on the same mount point. On Android, applications are most likely to hit this restriction when attempting to copy between internal storage and an SD card.

应始终检查返回值以确保重命名操作成功。

Parameters
dest File: The new abstract pathname for the named file
Returns
boolean true if and only if the renaming succeeded; false otherwise
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to either the old or new pathnames
NullPointerException If parameter dest is null

setExecutable

Added in API level 9
boolean setExecutable (boolean executable, 
                boolean ownerOnly)

设置此抽象路径名的所有者或每个人的执行权限。

Parameters
executable boolean: If true, sets the access permission to allow execute operations; if false to disallow execute operations
ownerOnly boolean: If true, the execute permission applies only to the owner's execute permission; otherwise, it applies to everybody. If the underlying file system can not distinguish the owner's execute permission from that of others, then the permission will apply to everybody, regardless of this value.
Returns
boolean true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname. If executable is false and the underlying file system does not implement an execute permission, then the operation will fail.
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the file

setExecutable

Added in API level 9
boolean setExecutable (boolean executable)

设置此抽象路径名的所有者执行权限的便捷方法。

调用表单 file.setExcutable(arg)的此方法的行为与调用完全相同

     file.setExecutable(arg, true) 

Parameters
executable boolean: If true, sets the access permission to allow execute operations; if false to disallow execute operations
Returns
boolean true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname. If executable is false and the underlying file system does not implement an excute permission, then the operation will fail.
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the file

setLastModified

Added in API level 1
boolean setLastModified (long time)

设置由此抽象路径名命名的文件或目录的最后修改时间。

所有平台都支持文件修改时间到最近的秒数,但有些提供更高的精度。 该参数将被截断以适应支持的精度。 如果操作成功并且不会对文件执行干预操作,则下一次调用lastModified()方法将返回传递给此方法的(可能截断的) time参数。

Parameters
time long: The new last-modified time, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970)
Returns
boolean true if and only if the operation succeeded; false otherwise
Throws
IllegalArgumentException If the argument is negative
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the named file

setReadOnly

Added in API level 1
boolean setReadOnly ()

标记由此抽象路径名命名的文件或目录,以便只允许读取操作。 调用此方法后,文件或目录保证不会更改,直到它被删除或标记为允许写入权限。 是否删除只读文件或目录取决于底层系统。

Returns
boolean true if and only if the operation succeeded; false otherwise
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the named file

setReadable

Added in API level 9
boolean setReadable (boolean readable)

设置此抽象路径名的所有者读取权限的便捷方法。

表单 file.setReadable(arg)的这种方法的调用的行为与调用完全相同

     file.setReadable(arg, true) 

Parameters
readable boolean: If true, sets the access permission to allow read operations; if false to disallow read operations
Returns
boolean true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname. If readable is false and the underlying file system does not implement a read permission, then the operation will fail.
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the file

setReadable

Added in API level 9
boolean setReadable (boolean readable, 
                boolean ownerOnly)

设置此抽象路径名的所有者或每个人的读取权限。

Parameters
readable boolean: If true, sets the access permission to allow read operations; if false to disallow read operations
ownerOnly boolean: If true, the read permission applies only to the owner's read permission; otherwise, it applies to everybody. If the underlying file system can not distinguish the owner's read permission from that of others, then the permission will apply to everybody, regardless of this value.
Returns
boolean true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname. If readable is false and the underlying file system does not implement a read permission, then the operation will fail.
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the file

setWritable

Added in API level 9
boolean setWritable (boolean writable, 
                boolean ownerOnly)

设置此抽象路径名的所有者或每个人的写入权限。

Parameters
writable boolean: If true, sets the access permission to allow write operations; if false to disallow write operations
ownerOnly boolean: If true, the write permission applies only to the owner's write permission; otherwise, it applies to everybody. If the underlying file system can not distinguish the owner's write permission from that of others, then the permission will apply to everybody, regardless of this value.
Returns
boolean true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the named file

setWritable

Added in API level 9
boolean setWritable (boolean writable)

设置此抽象路径名的所有者写入权限的便捷方法。

调用表单 file.setWritable(arg)的此方法的行为与调用完全相同

     file.setWritable(arg, true) 

Parameters
writable boolean: If true, sets the access permission to allow write operations; if false to disallow write operations
Returns
boolean true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname.
Throws
SecurityException If a security manager exists and its checkWrite(java.lang.String) method denies write access to the file

toString

Added in API level 1
String toString ()

返回此抽象路径名的路径名字符串。 这只是getPath()方法返回的字符串。

Returns
String The string form of this abstract pathname

toURI

Added in API level 1
URI toURI ()

构造表示此抽象路径名的 file: URI。

URI的确切形式是依赖于系统的。 如果可以确定由该抽象路径名表示的文件是一个目录,则结果URI将以斜杠结尾。

对于给定的抽象路径名 f ,可以保证

new File(  f .toURI()).equals(  f .getAbsoluteFile())
so long as the original abstract pathname, the URI, and the new abstract pathname are all created in (possibly different invocations of) the same Java virtual machine. Due to the system-dependent nature of abstract pathnames, however, this relationship typically does not hold when a file: URI that is created in a virtual machine on one operating system is converted into an abstract pathname in a virtual machine on a different operating system.

请注意,当此抽象路径名表示UNC路径名时,UNC的所有组件(包括服务器名称组件)都将编码在URI路径中。 权威组件是未定义的,这意味着它被表示为null

Returns
URI An absolute, hierarchical URI with a scheme equal to "file", a path representing this abstract pathname, and undefined authority, query, and fragment components
Throws
SecurityException If a required system property value cannot be accessed.

也可以看看:

toURL

Added in API level 1
URL toURL ()

此方法在API级别9中已弃用。
此方法不会自动转义URL中非法的字符。 建议在新的代码转换的抽象路径到URL通过先转换成URI,经由toURI方法,然后经由转换URI为URL URI.toURL方法。

将此抽象路径名转换为file: URL。 URL的确切形式取决于系统。 如果可以确定此抽象路径名表示的文件是一个目录,则结果URL将以斜杠结尾。

Returns
URL A URL object representing the equivalent file URL
Throws
MalformedURLException If the path cannot be parsed as a URL

也可以看看:

Hooray!