24

我无法理解以下文件构造函数。

public File(String parent, String child) and 
public File(File parent, String child)

文件的参数parentchild含义是什么?我什么时候可以使用这些?我做过一些与文件相关的程序,但我从未使用过这些程序。我通常使用

public File(String pathname)

我已经阅读了Javadoc,但我不知道何时以及如何使用这些构造函数。有人可以解释并举例说明。

4

4 回答 4

36

解释

parent参数为文件名的父目录或child相对文件路径。

File实例在哪里parent,它是一个目录文件。字符串在哪里,就其而言parent,它只是那个目录pathname


例子

考虑以下部分文件系统:

Documents
    Homework
    Classwork
    Tests

您可以将 Documents 目录声明为文件,并将其用作parent其他 File 实例的 File,而不是使用“Documents\Subdir”声明每个新文件,如下所示:

File documents = new File("Documents");
File tests = new File("Documents/Tests"); // new File(String);

File homework = new File(documents, "Homework"); // new File(File, String)

File classwork = new File("Documents", "Classwork"); // new File(String, String)

实际应用

以我的经验,我使用的应用程序提供的 API 包含一个方法,该方法返回允许第三方“插件”保存/读取文件的目录文件。如果没有File(File, String)构造函数,我需要将目录文件转换为绝对路径并将我的目标文件附加到它。

在以下示例中,Environment.getProgramDirectory()返回授予权限的目录文件。

File settingsFile = new File(Environment.getProgramDirectory(), "settings.txt");
于 2012-08-28T18:36:49.433 回答
2

“父抽象路径名用于表示目录,子路径名字符串用于表示目录或文件。”如API中所述

于 2012-08-28T18:38:21.283 回答
1

Parent将指向Directory

Child将是它的Contents..

于 2012-08-28T18:38:48.600 回答
1

让我们用一些例子来解释:

假设您具有以下结构:

/dir1
  dir11

你通常使用的构造函数new File("/dir1/dir11")相当于

new File("/dir1", "dir11")(构造函数以 2String作为参数)

也相当于

new File(new File("/dir1"), "dir11")(使用 aFile作为第一个参数的构造函数)。

于 2012-08-28T18:42:47.023 回答