在Java中,此文件位置中的句点表示什么?
我正在看一些用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”)
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()
vsgetAbsolutePath()
例如:
假设您的文件位于/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>