Ich hab ein Problem mit der Zugriffsberechtigung auf eine .txt Datei. Im Eclipse Workspace zeigt mir Windows 7 an, dass die Berechtigung vorhanden ist. 2 kleine Programme sind allerdings unterschiedlicher Meinung. Und ja auf beide Dateien haben dieselben Nutzer dieselben Zugriffsrechte.
ersteres Programm sagt: canRead == true, canWrite == false, canExecute == true
import java.io.File;
import java.io.IOException;
public class FilePermissionExample
{
public static void main( String[] args )
{
try {
File file = new File("test.txt");
if(file.exists()){
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
}
file.setExecutable(false);
file.setReadable(false);
file.setWritable(false);
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
if (file.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Alles anzeigen
Das zweite Programm sagt allerdings: canRead == false, isFile == false
package numbertest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class tester {
private static void ladeDatei(String datName) {
File file = new File(datName);
if (!file.canRead() || !file.isFile()){
if (file.canRead()==false) System.out.println("error1");
if (file.isFile()==false) System.out.println("error2");
System.exit(0);
}
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(datName));
String zeile = null;
int n = 0;
while ((zeile = in.readLine()) != null) {
n=n+1;
}
System.out.println(n);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null)
try {
in.close();
} catch (IOException e) {
}
}
}
public static void main(String[] args) {
ladeDatei("test.txt");
}
}
Alles anzeigen
Außerdem hat das zweite Programm mit dem ursprünglichem textfile welches ich hinzugefügt hatte funktioniert. Nachdem ich den Text in Eclipse geänder habe funktionierte es nicht mehr (und dann folgte die Fehlersuche mit dem ersten Programm).
Eigentlich sollten alle Rechte da sein... Auf anderen Rechnern hatte ich bisher nie solche Probleme.