首页 > 解决方案 > 在java中设置可读可写不起作用

问题描述

我为我的 java 应用程序制作了一个 exe 包装器,它要求输入管理密码并使用 setReadable(true) 方法更改管理文件的权限。该方法返回true,即操作成功但没有任何反应文件仍然保留管理权限

标签: java

解决方案


我正在回答我的问题,以便更好地查看代码。

import java.io.*;

public class Installer

//Runs with administrator Privillages

{

    public static void main(String[]args)
    {
        boolean b=new File("C:/Program Files/ ... ").setWritable(true,false);
        System.out.println("Successful in making writable : "b);
    }
}

输出:

Successful in making writable : true



class Installed
//Runs without Administrative privillages
{
    public static void main(String[]args)
    {
        boolean b=new File("C:/Program Files/Page Book/Data.txt").canWrite();
        System.out.println("I can write : "b);//the conflict
        try{
        PrintStream ps=new PrintStream(new FileOutputStream("C:/Program Files/Page Book/Data.txt"));
        ps.println("...");
        ps.close();
        }catch(Exception e){e.printStackTrace();}
    }
}

输出

I can write : true

java.io.FileNotFoundException: C:\Program Files\Page Book\Data.txt (Access is denied)

at java.io.FileOutputStream.open0(Native Method)

at java.io.FileOutputStream.open(FileOutputStream.java:270)

at java.io.FileOutputStream.<init>(FileOutputStream.java:213)

at java.io.FileOutputStream.<init>(FileOutputStream.java:101)

at Installed.main(Installed.java:23)`

推荐阅读