Datei sperren und löschen

Ich versuche ein Programm in java, dass Monitore und backup-Verzeichnis. Von Zeit zu Zeit habe ich den upload geänderten Dateien in das repository oder das herunterladen, wenn es eine neue version gibt.
Um dies zu tun, muss ich die Datei sperren, so dass der Benutzer nicht in der Lage ist, den Inhalt zu ändern oder zu löschen.
Derzeit bin ich mit diesem code, um die Datei sperren:

        file = new RandomAccessFile("C:\\Temp\\report.txt", "rw");

        FileChannel fileChannel = file.getChannel();
        fileLock = fileChannel.tryLock();
        if (fileLock != null) {
            System.out.println("File is locked");

            try{

            //Do what i need    

            }catch (Exception e){//Catch exception if any
                System.err.println("Error: " + e.getMessage());
            }
        }
        else{
            System.out.println("Failed");
        }
    } catch (FileNotFoundException e) {
        System.out.println("Failed");
    }finally{
        if (fileLock != null){
            fileLock.release();
        }

Allerdings, wenn es eine neue version gibt habe ich zum löschen der alten Datei, und ersetzen Sie durch eine neue.
Aber die lock-Datei nicht erlauben, mich um die Datei zu löschen.

Sollte ich entsperren und löschen, es schreiben Weg, im Vertrauen darauf, dass der Benutzer nicht schreiben in die Datei? Oder gibt es eine andere Möglichkeit, dies zu tun?

Das wird nicht funktionieren, sowieso. FileLocks nicht verhindern, dass die Benutzer ändern oder löschen der Datei. Sie nur verhindern, dass andere Programme die Datei gesperrt wird.

InformationsquelleAutor user1308768 | 2012-06-24

Schreibe einen Kommentar