现在需要写一个方法,主要是判断一个文件夹是否属性被设定为只读权限。
请注意了,各位大虾,文件夹不是文件。
之前用过
    File file = new File ("C:/Users/sunxu/Desktop/testfile1");
    if(file.exists()){
if (file.canWrite() ) {   
System.out.println("不只读");
} else {  
System.out.println("只读");
}
    } else{
System.out.println("不存在");
    }
但是这个file.canWrite() 只对文件好用
现在跪求一个判断文件的方法!!!
谢谢大虾了!!!

解决方案 »

  1.   

    use directory not file.
      

  2.   

    file.setReadOnly();
    其实你的文件夹在设置的时候就是can read and write的,现在你在程序里面写一个他为只读,这样canWrite就为false了。
      

  3.   

    还有,在java中文件和文件夹都抽象为File,所以file有一个方法 isDirectory这个方法就可以判断他是否为文件夹还是文件。同理,因此都具有这些判断属性的方法了!
      

  4.   

    还是不搞清楚,我想做到的是
    判断一个文件夹是否是被设定了 只读属性
    因为文件的话,下面这个好用
    比如说,testfile2.xlsx
    File file = new File ("C:/Users/sunxu/Desktop/testfile2.xlsx");
    if (file.canWrite() ) {   
     System.out.println("不只读");
     } else {  
     System.out.println("只读");
     } 
    但是文件夹,不好用,一直都是"不只读",不好用
    File file = new File ("C:/Users/sunxu/Desktop");
    if (file.canWrite() ) {   
     System.out.println("不只读");
     } else {  
     System.out.println("只读");
     }
      

  5.   

    你修改文件夹属性的方法不对
    在Windows下用右键单击文件夹,然后选择是否只读的方法无法修改文件夹的只读属性
    也就是说你的文件夹只读属性一直没有变,所以用canWrite()方法判断出来的一直不变
    应该在命令行下 输入attrib +r C:/Users/sunxu/Desktop(只读)
                       attrib -r C:/Users/sunxu/Desktop(非只读)
                   来修改文件夹属性
    这样再用你原来的语句就能判断出来了
      

  6.   

    按你的方法会一直都是 不只读的,因为默认就是读写的;只修改属性为只读改变不了java读到的状态,楼上说的方法可以用试试,我之前也遇到这个问题,现在具体的代码忘了,顶一下楼上的方法!!!