【发布时间】:2012-08-07 17:44:16
【问题描述】:
我正在编写 Java 6 应用程序,我必须检查文件是否可读。但是,在 Windows 上 canRead() 总是返回 true。所以我认为,唯一的解决方案可能是一些基于 WINAPI 并用 JNA/JNI 编写的本机解决方案。
但是,还有另一个问题,因为在 WINAPI 中很难找到一个简单的函数来返回有关访问文件的信息。我找到了GetNamedSecurityInfo 或GetSecurityInfo,但我不是高级 WINAPI 程序员,它们对于我来说与 JNA/JNI 连接起来太复杂了。任何想法如何处理这个问题?
【问题讨论】:
-
您可以尝试读取文件,看看是否有错误。
-
正确性比速度更重要。 ;) 您无需阅读整个文件,只需打开并关闭即可。
-
就磁盘操作而言,打开和关闭文件所需的工作与读取与文件关联的安全描述符所需的工作大体相同。如果性能不相似,我会感到惊讶。
-
@user389658 相反。它试图像这样预测未来,这不是“最佳实践”。
标签: java winapi java-native-interface jna