1
import java.io.File;
class AttriDemo{

    public static void main(String args[]){
        File f1 = new File("FileIO/file.txt");
        System.out.println("File name           : " + f1.getName());
        System.out.println("File path           : " + f1.getPath());
        System.out.println("File AbsPath        : " + f1.getAbsolutePath());
        System.out.println("File parent         : " + f1.getParent());
        f1.setWritable(true);
        if(f1.canWrite())
        {
            System.out.println("File is Writeable");
        }
        else
        {
            System.out.println("File is not Writeable");
        }
        if(f1.canRead())
        {
            System.out.println("Is readable");
        }
        else
        {
            System.out.println("File is not readable");
        }
    }
}

我的文件是真实可读写的...

然后我尝试将其显式设置为 Writable 但输出仍显示为文件不可写!

输出:

....
The file is not writable.
The file is not readable.

File f1 = new File("D:/javaProgs/FileIO/AttriDemo.java");

这样做有助于解决问题。但有人可以解释一下吗?我的意思是文件在同一个目录中,上面的语句运行得很好。例如 getName() getParent()

4

1 回答 1

1

愚弄您的是,无论您指定的路径是否存在,您都可以创建一个 File 对象,并且您可以在该对象上调用所有这些getParent函数getPath

您可以出于各种原因创建一个不受真实文件支持的 File 对象,例如检查它是否存在或创建由该对象路径和名称指定的文件。

您可以使用File.exists()查看文件是否真的存在于文件系统中。

于 2012-11-11T07:28:31.353 回答