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

时间:2016-05-01 13:33:45

标签: java

假设" /"中有两个文件test.txt和test1.txt; 。目录

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

我的操作系统是android,文件系统是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

2 个答案:

答案 0 :(得分:2)

这可能是由于文件系统的路径限制 - 你在使用什么?

(对不起,这更像是评论而不是答案,但我没有足够的评论来评论你的帖子......)

答案 1 :(得分:1)

操作系统强加了限制。例如:

  

我想知道背后的原因。

Java通过本机库与操作系统交互,本机库对单个文件名和路径名的长度都有严格的限制。 Java必须符合限制。