假设" /"中有两个文件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
答案 0 :(得分:2)
这可能是由于文件系统的路径限制 - 你在使用什么?
(对不起,这更像是评论而不是答案,但我没有足够的评论来评论你的帖子......)
答案 1 :(得分:1)
操作系统强加了限制。例如:
我想知道背后的原因。
Java通过本机库与操作系统交互,本机库对单个文件名和路径名的长度都有严格的限制。 Java必须符合限制。