2

我正在运行一个程序来列出存储在文件夹中的所有文件的信息。

我想获取文件的属性(对我来说最重要的是文件大小,但我还想获取其他属性,如修改日期等)。

我的问题是当我访问另一个程序实际使用的文件时,我无法获取BasicFileAtrributtes文件。我尝试使用File, URL, RandomFileAcces, 但所有这些都需要打开文件,并抛出异常,如:

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;        
}
4

2 回答 2

2

这对我来说很好:

File temp = new File("c:\\pagefile.sys");
System.err.println(temp.length());
System.err.println(temp.lastModified());
于 2012-04-05T08:57:17.423 回答
0

如果方法java.io.File.exists()返回 false,并且文件C:\pagefile.sys存在于您的文件系统中,那么您指定的文件路径不正确。

以下代码适用于我的机器:

package q10025482;

import java.io.File;

public class TestFile {
    public static void main(String[] args) {
        String fileName = "C:/System Volume Information";//"C:/pagefile.sys"
        File file = new File(fileName);
        System.out.println("\nFile " + file.getAbsolutePath() + " info:");
        System.out.println("Exists: " + file.exists());
        System.out.println("Is file: " + file.isFile());
        System.out.println("Is dir: " + file.isDirectory());
        System.out.println("Length: " + file.length());
        System.out.println();
    }
}

这是结果输出:

File C:\System Volume Information info:
Exists: true
Is file: false
Is dir: true
Length: 24576
于 2012-04-05T10:13:58.260 回答