gpt4 book ai didi

java - File.canExecute() 说每个文件都是可执行的?

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:27 38 4
gpt4 key购买 nike

我正在使用此代码来测试它;

public class CanExecuteTest {
public static void main (String[] args) {
File currentDir = new File(System.getProperty("user.dir"));
traverse(currentDir);
}

public static void traverse(File dir) {
String[] filesAndDirs = dir.list();
for (String fileOrDir : filesAndDirs) {
File f = new File(dir, fileOrDir);
if (f.isDirectory()) {
traverse(f);
} else {
System.out.print(f);
if (f.canExecute()) {
System.out.println(" can execute");
} else {
System.out.println(" cannot execute");
}
}
}
}
}

这输出每个文件都是可执行文件。我在这里做错了什么,还是这是一个java错误?我使用的是 windows 7、netbeans 7.3.1 和 java 7。

最佳答案

canExecute() 不测试可执行性,它测试当前程序(即您的程序)是否允许执行它。例如,如果您将其中一个文件的权限更改为 000(任何用户都不能读取、写入或执行),canExecute() 可能会返回 false,因为 JVM 没有权限来执行(或读取)该文件。

如果您想检查可执行文件,您可以创建一个方法来解析文件的后缀,并在找到 .exe(或 OS X 上的 .app)时返回 true。

关于java - File.canExecute() 说每个文件都是可执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154202/

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