Java IO权限被拒绝。但canWrite是真的

时间:2015-08-05 10:53:04

标签: java desktop

我正在开发一个小应用程序,它应该将一些文件插入到程序目录中。当谈到写这个文件时,它就会失败 java.io.FileNotFoundException (permission denied)

这是我的代码(有点乱,正在调试这个很多)

while(ze!=null){

   String fileName = ze.getName();
      File newFile = new File(outputFolder + File.separator + fileName);

      System.out.println("file unzip : "+ newFile.getAbsoluteFile());

       //create all non exists folders
       //else you will hit FileNotFoundException for compressed folder
       new File(newFile.getParent()).mkdirs();
       new File(newFile.getParent()).setWritable(true,false);
       if(newFile.isDirectory()){
           newFile.mkdir();
           newFile.getParentFile().setReadOnly();
           newFile.setReadable(true);
           newFile.setExecutable(true);
           if(newFile.setWritable(true)){
               System.out.println("permission set success");
           }else{
               System.out.println("permission set failed");
           }
           newFile.getParentFile().setReadable(true);
           newFile.getParentFile().setExecutable(true);
           newFile.getParentFile().setWritable(true);

           if(newFile.getParentFile().canWrite()){
               System.out.println("Parent Writable");
           }else{
               System.out.println("Parent Not Writable");
               newFile.getParentFile().setWritable(true, false);
           }
       }

       if(!newFile.canWrite()){
           System.out.println("We cannot write!");
       }else{
           System.out.println("We can write!");
       FileOutputStream fos = new FileOutputStream(newFile);             

       int len;
       while ((len = zis.read(buffer)) > 0) {
        fos.write(buffer, 0, len);
       }

       fos.close();   
       ze = zis.getNextEntry();

       }
}

   zis.closeEntry();
zis.close();

System.out.println("Done");

输出:     文件解压缩:     权限集失败     父母可写     我们可以写!     java.io.FileNotFoundException :(权限被拒绝)

我尝试在具有管理员权限和普通用户(eclipse)的CMD中运行应用程序并且两者都失败了,这可能是什么原因?

0 个答案:

没有答案