Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取目录的文件对象_Java_File - Fatal编程技术网

Java 获取目录的文件对象

Java 获取目录的文件对象,java,file,Java,File,我需要一个指向目录的文件对象(可能不存在)。我该怎么做 即使我做了类似的事情 File dir = new File("/tmp/something/"); // with trailing slash dir.isDirectory()为false。然后我尝试了返回false的dir.mkdir(),为什么?我不需要目录存在,事实上,我希望它指向一个不存在的目录(我正在测试)。我怎样才能做到这一点 使用dir.mkdirs() mkdirs()将完整地创建指定的目录路径,其中mkdir()将

我需要一个指向目录的文件对象(可能不存在)。我该怎么做

即使我做了类似的事情

File dir = new File("/tmp/something/"); // with trailing slash
dir.isDirectory()
false
。然后我尝试了返回false的
dir.mkdir()
,为什么?我不需要目录存在,事实上,我希望它指向一个不存在的目录(我正在测试)。我怎样才能做到这一点

使用
dir.mkdirs()


mkdirs()
将完整地创建指定的目录路径,其中
mkdir()
将只创建最底层的目录,如果找不到要创建的目录的父目录,则会失败。

尾部斜杠无关紧要。File.isDirectory返回false,因为当且仅当此抽象路径名表示的文件存在且是javadoc中的目录时,才会返回true:“当且仅当此抽象路径名表示的文件存在且是目录时,才会返回true”


如果文件不存在,isDirectory()返回false。如果您正在进行测试,那么使用存根可能是更好的选择,在单元测试中,最好不要接触文件系统之类的外部资源。

您已经有了存根
dir.isDirectory()
返回
false
,文件夹不存在:“当且仅当此抽象路径名表示的文件存在且为目录时为true;否则为false”它仍然返回false。代码的计算结果为
新文件(“/tmp/nonexistant”)
,我应该能够写入tmp,并创建不存在的文件。这里有什么问题吗?我只想获取文件对象,而不创建目录,是否可能?文件对象需要文件的路径,所以目录是必需的,但您可以将文件保存在现有目录中。无需生成“我只想获取文件对象而不创建目录,有可能吗?”我不明白。您已经拥有了它,因为您正在对它调用isDirectory()。目录创建可能会失败,因为用于运行Java的用户没有适当的文件系统权限。