gpt4 book ai didi

Java - 即使文件不可读,file.length() 也会返回

转载 作者:IT王子 更新时间:2023-10-29 00:10:14 24 4
gpt4 key购买 nike

我有一个文件,我已经禁止了其中的所有权限。没有人应该能够读取该文件,对吗?事实上,如果我跑

File f = new File("not_readable.pdf");
System.out.println(f.canRead())

我明白了

false

但是,如果我调用

File f = new File("not_readable.pdf");
System.out.println(f.length())

我明白了

455074

据我了解,为了获得文件的大小,必须先打开并读取文件,但这个结果强烈表明我错了。有谁知道为什么会这样?另外,有没有办法阻止 Java 的 file.length() 方法访问文件的大小?

我正在使用 Ubuntu 12.10

最佳答案

你错了:文件的长度是文件系统元数据(至少对于运行在 Linux VFS 下的文件系统而言)。任何对目录具有读取权限的人都可以看到所有包含的文件及其大小。为了防止用户看到文件的大小,您必须完全阻止他们看到它,即如果用户不在与目录关联的组,或者 drwx------- 如果用户在该组中。

关于Java - 即使文件不可读,file.length() 也会返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14289957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com