怎么我的文件用别的程序打开并且锁定不能读的情况下,canRead还是返回true?另外路径也是,别人共享的一个路径我映射网络驱动,明明是不可写的,canWrite还是true?

解决方案 »

  1.   

    不知道你用的是什么方法写的,不过我的
    File f=new File("d:\\aa.txt");
        System.out.println(f.canRead());
        System.out.println(f.canWrite());
    返回正常,都是按照文件属性返回来的
      

  2.   

    代码超简单的说
    import java.io.File;public class SplitFie { public static void main(String[] args) {
    File file = new File("d:/test/SHP01.txt");
    System.out.println(file.canRead());
    }
    }
    SHP01.txt被我用vb以独占方式打开,用记事本访问时报错打不开的,但是java打出的结果是true...不解
      

  3.   

    那你用JAVA读取下试试看呢~~
    public boolean canRead()测试应用程序是否可以读取此抽象路径名表示的文件。 返回:
    当且仅当此抽象路径名指定的文件存在且 可由应用程序读取时,返回 true;否则返回 false 
      你用VB独占了,JAVA可能获取不到这个信息,但是读取的时候肯定会报错
      

  4.   

    我这边要做的是个分拣程序,不断查找一个目录下的文件按照某个规则分拣到别的地方,对于不可读的文件不处理,文件是由别的程序生成传过来的。本来想直接用canRead检测下是否可读,不可读就跳过,如果是那样的话,不是要每个都打开读一下,效率太低了吧?
      

  5.   

    import java.io.*;
    public class Example10_1 { /**
     * @param args
     */
    public static void main(String[] args) {
    File f1=new File("F:\\8000","Example20_1.java");
    File f2=new File("F:\\8000");
    System.out.println("文件Example20_1是可读 的吗:"+f1.canRead());
    System.out.println("文件Example20_1的长度:"+f1.length());
    System.out.println("文件Example20_1的绝对路径:"+f1.getAbsolutePath());
    System.out.println("F:\\8000:是目录吗?"+f2.isDirectory()); }}
      

  6.   

    f1.canRead()为false,
    f1.length()为0
    我已经创建了Example20_1.java