java.io.file长路径是否被截断?

java.io.file长路径是否被截断?,java,Java,假设“/”目录中有两个文件test.txt和test1.txt 如果文件名小于4096字节,则文件存在,否则不存在 我的操作系统是安卓系统,文件系统是ext4 我想知道这背后的原因。有人能告诉我吗 String path = new String(new char[4086]).replace("\0\0\0", "../") String filename = "/"+path+test.txt File file = new File(filename); file.getPath().le

假设“/”目录中有两个文件test.txt和test1.txt

如果文件名小于4096字节,则文件存在,否则不存在


我的操作系统是安卓系统,文件系统是ext4

我想知道这背后的原因。有人能告诉我吗

String path = new String(new char[4086]).replace("\0\0\0", "../")
String filename = "/"+path+test.txt
File file = new File(filename);
file.getPath().length(); //return 4095
file.exists(); //return true

String path = new String(new char[4086]).replace("\0\0\0", "../")
String filename = "/"+path+test1.txt
File file = new File(filename);
file.getPath().length(); //return 4096
file.exists(); //return false

这可能是由于文件系统的路径限制造成的-您正在使用什么


(对不起,这更像是一个评论,而不是一个答案,但我没有足够的要点来评论你的帖子…

限制是由操作系统强加的。例如:

我想知道这背后的原因


Java通过本机库与操作系统交互,本机库对单个文件名和路径名的长度都有硬限制。Java必须遵守这些限制。

什么操作系统和文件系统?我的操作系统是android,文件系统是ext4。我的文件系统是ext4。参考维基百科的文章,ext4没有路径限制。但对于Android来说,这可能是一种不同的情况:*可能对文件名进行加密*路径限制可能与“原始”ext4不同