概述即使文件不可读,Java – file.length()也会返回
我有一个文件,我已经压制了每一个许可。 没有人应该能够读取文件,对不对? 事实上,如果我跑步
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())
我明白了
系统调用和库调用有什么区别?
linux编程接口中的信号处理程序示例
程序员从XP / Vista移到windows 7时应该知道什么?
通过pipe道进行进程间通信
用windows8上的C读取引导扇区
455074
这是我的理解,为了得到一个文件的大小必须先打开并阅读文件,但这个结果强烈表明,我错了。 有谁知道为什么发生这种情况? 另外,有没有办法阻止Java的file.length()方法访问文件的大小?
我正在使用Ubuntu 12.10
了解负载平均值与cpu使用率
32位机器使用0x08048000之前的内存是多less?
我在哪里可以学习如何使C ++程序与 *** 作系统(linux)交互
当我们将一块硬件插入计算机系统时会发生什么?
如何testing我的应用程序在不同国家的windows *** 作系统版本上的function?
你错了:文件的长度是文件系统的元数据(至少在linux VFS下运行的文件系统)。 任何具有读取目录权限的人都可以看到所有包含的文件及其大小。 为了防止用户看到文件的大小,你必须防止他们看到它,即把文件放在一个有drwxr-x—权限的目录drwxr-x—如果用户不在与该目录相关的组中,或者drwx——如果用户在该组中。
我不明白你为什么需要读访问来查看文件的大小。 在linux中,只要您在包含文件的目录上拥有适当的权限,即使您对它们没有权限, ls也会显示目录中所有文件的内容(包括它们的大小)。 文件的大小是文件分配表的一个属性,而不是文件本身,所以length()不需要检查实际的文件本身(并且通过计算文件的数量来获取文件的长度是相当低效的文件中的字节)。
总结
以上是内存溢出为你收集整理的即使文件不可读,Java – file.length()也会返回全部内容,希望文章能够帮你解决即使文件不可读,Java – file.length()也会返回所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容