我正在运行程序以列出存储在文件夹中的所有文件的信息。访问被拒绝 - 获取文件的属性?
我想获得一个文件的属性(对我来说最重要的是文件大小,但我想获得其他属性,如修改日期等)。
我的问题是,当我到达其他程序实际使用的文件时,我无法获得文件的BasicFileAtrributtes
。我试着用File
,URL
,RandomFileAcces
,但所有这些requiese的打开文件,并抛出异常,如:
java.io.FileNotFoundException: C:\pagefile.sys (Access is denied)
是否有在java中的任何选项来获得这个属性?我不想使用任何额外的库,以保持应用程序的小尺寸。
应用基于java JRE7。
我使用java.nio.file.SimpleFileVisitor
访问所有文件。 这里是我的代码,在那里我得到了错误的片段:
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc){
FileInfo temp=new FileInfo(new FileInfo().repairName(file.toString()));
temp.isLeaf=true;
temp.fName=temp.fName.replace(strIn, "");
File fis=null;
try {
fis=new File(file.toAbsolutePath().toString());
if(fis.exists())
System.out.println("exists");
if(fis.isFile())
System.out.println("isFile");
System.out.println(file.toAbsolutePath().toString());
temp.fSize=new BigInteger(new Long(fis.length()).toString());
} catch(Exception e){
e.printStackTrace();
}
node.add(temp, true);
FileListCreator.jProgressBar.setValue(++count);
return CONTINUE;
}
你可以告诉你正在使用的代码?也许你不小心试图写入只读文件。 – Jivings 2012-04-05 08:53:31
尝试在'fis'初始化后调用'fis.exists();'和'fis.isFile();'。他们都回归'真实'吗? – MockerTim 2012-04-05 09:18:36
@MockerTim:不,他们都返回false。我对其他受系统保护的文件(如ntldr)没有问题,但是这个不能解析为常规文件。我可以通过Total Commander查看文件的大小和属性。 – filipbe 2012-04-05 09:24:02