Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 Io_Directory_Directory Structure - Fatal编程技术网

在Java中,此文件位置中的句点表示什么?

在Java中,此文件位置中的句点表示什么?,java,file-io,directory,directory-structure,Java,File Io,Directory,Directory Structure,我正在看一些用Java创建文件的示例代码: File f = new File("test/.././file.txt"); 我对它的工作原理感到困惑-你怎么能有“测试”,然后是那些。和之间的那些?如果我在机器中的任意目录中运行此代码,为什么它可以工作(即我没有名为“test”的文件夹) 这是java中路径测试代码的一部分(getAbsolutePath()等) 谢谢,因为。将返回目录层次结构,所以您将返回到开始的位置(不在测试中)。这是不必要的,因为它相当于: 文件(“test.txt”)

我正在看一些用Java创建文件的示例代码:

File f = new File("test/.././file.txt");
我对它的工作原理感到困惑-你怎么能有“测试”,然后是那些
之间的那些?如果我在机器中的任意目录中运行此代码,为什么它可以工作(即我没有名为“test”的文件夹)

这是java中路径测试代码的一部分(getAbsolutePath()等)


谢谢

,因为
将返回目录层次结构,所以您将返回到开始的位置(不在测试中)。这是不必要的,因为它相当于:

文件(“test.txt”)

因此,无论在哪个目录下运行,它都应该工作

。。意思是“上一级目录”。单曲。只是指“当前目录级别”。我无法理解为什么它们在你的文件路径中。您的路径似乎意味着“进入测试文件夹,然后上升一个级别(到您开始的级别),停留在该级别,然后查找file.txt”。您可以只使用新文件(“File.txt”)执行相同的操作。

the“.”将从当前目录向上移动一个目录。因此,该代码基本上与新文件(“./File.txt”)相同

假设您有类似ABC/test/file.txt的目录结构 如果你在测试中,那么你的。路径是否可以测试
和。。到ABC的路径为。。表示父目录,“test”的父目录是“ABC”

/p>/转到项目所在的目录 ../返回一个文件夹,假设您有一个资源目录

Res/graphics/sprites/image.png

如果您使用File File=新文件(“./graphics/sprites/”); 这将指向sprites目录


现在,如果要返回文件目录file newFile=file+“./”;

表示父目录;
表示此目录

将此设置为有效设置是您应该使用
getCanonicalPath()
vs
getAbsolutePath()

例如: 假设您的文件位于/folder1/folder2目录下

然后

File f=新文件(“/folder1/folder2/folder3/。/”;
f、 getCanonicalPath()==>/folder1/folder2/
f、 getAbsolutePath()==>/folder1/folder2/folder3//

你说的“为什么它能工作”是什么意思"? 您如何处理
文件
?Java中的
文件
只是一个路径,而不是一个文件句柄。点是标准的URI语法。@Boristespider-啊,我明白你的意思了。因此,当我们编译它时,它实际上并没有验证整个路径是否存在。好的,我现在明白了。非常感谢!!你并不总是从哪里开始:“考虑路径
a/./b
,路径将变为
b
。如果
a
x
的符号链接,
a/./b
可能指的是
x
的兄弟,而不是
b
所指的
a
File f = new File("test/.././file.txt");  //.. is used to go one hierarchy above in the directory structure and . is for current directory
File f = new File("/folder1/folder2/folder3/../<your file>");
f.getCanonicalPath() ==> /folder1/folder2/<your file>
f.getAbsolutePath() ==> /folder1/folder2/folder3/../<your file>