FileMove (Rename) trotz READONLY-Attribut?

    • Offizieller Beitrag

    Mir ist gerade etwas komisches aufgefallen. Und zwar kann man mit FileMove Dateien umbenennen und/oder verschieben, obwohl sie das READONLY-Attribut besitzen.
    Ich bin mir nicht ganz sicher, ob das schon immer so war, aber meiner Meinung nach ist das doch ein Fehler, oder?
    Hier mal ein Testscript:

    Spoiler anzeigen
    [autoit]


    $sTestfile = @ScriptDir & '\test.txt'
    $hFile = FileOpen($sTestfile, 2)
    If $hFile <> -1 Then
    FileWrite($hFile, 'abc')
    FileClose($hFile)
    FileSetAttrib($sTestfile, '+R')
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    FileMove($sTestfile, @ScriptDir & '\test\test_umbenannt.txt', 8)

    [/autoit]
  • Hallo Oscar

    Read Only hat nichts mit Verschieben oder Umbenenen zu tun, sondern damit, dass du das File nicht editieren, also den Inhalt verändern darft.
    Ein File Umbenennen oder Verschieben, ist etwas anderes.

    Gruss Roger

    • Offizieller Beitrag

    Ok (diverse Tests später), das Verhalten ist doch etwas komplizierter.
    Ein verschieben der Datei (mit gesetztem R-Attribut) ist nur auf dem gleichen Laufwerk möglich.
    Sobald man versucht, die Datei auf ein anderes Laufwerk zu verschieben, verhält sich FileMove wie FileCopy. Es wird also eine Kopie erstellt und das Original bleibt erhalten.

    Jetzt verstehe ich zumindest, warum das mal funktioniert und mal nicht.
    So ganz einleuchtend finde ich das aber nicht. READONLY würde ich auch für "nicht löschen" (wird beim FileMove ja eigentlich gemacht) ansehen.
    Naja, damit ist das Thema erledigt.