windows - ioexception: Det krævede privilegium holdes ikke af klienten, mens du skriver i filen i java

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg søgte mange af de lignende spørgsmål, men kunne ikke løse mit problem.


Jeg forsøger at skrive noget i en fil, hvilket giver mig fejl.


Min kode


try {
    File f = new File(file\_name);
    f.createNewFile();
    //System.out.println("Hello");
    f.setWritable(true);
    FileWriter fstream = new FileWriter(f);
    BufferedWriter out = new BufferedWriter(fstream);
    ListIterator<String> itr = account.listIterator();//account is a List object
    while (itr.hasNext()) {
        String element = itr.next();
        out.write(element);
        out.newLine();
    }
    out.close();

} catch (IOException e) {
    e.printStackTrace();
}


Fejlen er


java.io.IOException: A required privilege is not held by the client
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at com.example.Test.main(Test.java:25)


Denne fejl opstår kun når file\_name er C:\Test.txt, men når jeg ændrer denne file\_name værdi til C:\New Folder\Test.txt (hvor New Folder er en mappe inde i C-drev) fungerer fint.


Hvorfor kan vi ikke oprette en fil inden for C-drev?

Bedste reference


Siden Windows Vista og fremover tillader standard Windows-opsætning ikke brugere at oprette filer i roden af ​​C: drevet med standardrettigheder. Hvis du har brug for at oprette en fil i roden på en disk, skal du have administratorrettigheder og at køre appen som administrator (eller løft til administratorrettigheder på en anden måde).

Andre referencer 1


Brugerarkivering er vigtig i dette tilfælde, må du ikke spille med c og d-drev, gør alt inden for dit lokalområde