Dateien entsperren ??

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dateien entsperren ??

    Hallo,

    im Dateisystem habe ich Dateien, die mit einem kleinen Schloss gesperrt sind.
    Ich würde gerne diese Dateien mit Objective-C entsperren.

    Welcher Befehl ist denn dafür Zuständig?
    Habe lange gesucht und leider nichts gefunden.

    Danke
    Michael
  • So Danke,

    die Schlagwörter haben gereicht.


    C-Quellcode

    1. NSFileManager *fm = [NSFileManager defaultManager];
    2. NSDictionary *attribs = [NSDictionary dictionaryWithObject:
    3. [NSNumber numberWithBool:NO] forKey:NSFileImmutable];
    4. // [fm changeFileAttributes:attribs atPath:importString];
    5. [fm setAttributes:attribs ofItemAtPath:importString error:nil];
    Allerdings habe ich mir mehrere Codeschnipsel im Netz angeschaut.
    ChangeFileAttributes wurde bei Apple gestrichen und musste durch setAttributes ersetzt werden.

    Also alleine wäre ich da niemals drauf gekommen, weil das ganze auch noch mit NSDictionary zu tun hat, wovon ich überhaupt keine Ahnung habe.

    dictionary of Object: was mag das wohl heissen?
    Ich weiss nur das Dictionary Schlagworte sind, aber das könnte ja alles sein.
    numberWithbool da ich nach ein und ausschalten gesucht habe, lieg das wohl nahe das man hier den Schutz ein oder ausschalten kann. Aber wirklich verstehen tue ich das derzeit nicht. es ist nur eine logische Schlussfolgerung.
    forKey ist wohl wie die Zuweisung in xcode bei der Tabelle also handelt es sich hierbei um eine Zuweisung und damit wahrscheinlich den Protection Schalter.

    Also verstehen würde ich durch die Zuweisung auf das Objekt wird durch das forKey den Schutzmechanismus angesprochen, welche mit numberWithBool ein oder ausgeschaltet wird. Aber Dictionary tippen ich mal das es das Objekt anspricht.

    Falls meine Schlussfolgerung völlig daneben sind, sagt es.

    Michael
  • Hallo,

    ich weis es ist schon lang her und muss das Thema noch mal aufgreifen.
    Ich hatte immer angenommen, das die Dateien gesperrt waren und daher lief alles Problemlos.

    Irgendwann stockte es und die Fehlersuche im code war mehr als lange und zerrte so richtig an meinen Nerven.

    Letztelendes habe ich heraus gefunden, das es immer rProbleme gab wenn eine Datei gesperrt war.
    Ich dachte das die zwei Zeilen Code funktionierten. Zumindest dachte ich das.

    C-Quellcode

    1. // Dateiattribut ändern - Schreibschutz entfernen
    2. NSDictionary *attribut = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:NSFileImmutable];
    3. [dateiOperationen setAttributes:attribut ofItemAtPath:[dateiPfadImport relativeString] error:nil];
    4. NSLog(@"Die Datei %@ wurde entsperrt", dateiPfadImport);
    Um jetzt heraus zu finden wo das Problem liegt wollte ich gerne die Fehlermeldung herausfinden.
    Jetzt heisst es error:nil zu ersetzen.

    Hier habe ich gelesen wen nil nicht eingesetzt wird, liefert ein Objekt zurück, welches Fehlercodes enthalten sein sollen.
    attributesOfItemAtPath:error:

    Dann habe ich den Code so abgeändert um Fehlermeldungen zu erhalten

    C-Quellcode

    1. // Dateiattribut ändern - Schreibschutz entfernen
    2. NSError *fehlermeldung;
    3. NSDictionary *attribut = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:NSFileImmutable];
    4. [dateiOperationen setAttributes:attribut ofItemAtPath:[dateiPfadImport relativeString] error:fehlermeldung];
    5. NSLog(@"Die Datei %@ wurde entsperrt", dateiPfadImport);
    Aber erhalte ich dann "implicit conversion on an Object-C pointer to NSError" _nullable is disallowed with ARC.


    Bin schon der lange daran und weis einfach nicht weiter.

    Über hilft würde ich mich sehr freuen.
  • So habe es jetzt, aber ich verstehe die Meldung nicht wirklich.
    Error Domain=NSCocoaErrorDomain Code=4
    "The file “DATA1.CSV” doesn’t exist."
    UserInfo={NSFilePath=file:///Users/michael/Library/Application%20Support/TW/Import/DATA1.CSV,
    NSUnderlyingError=0x608000045250 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
    Dort wird gesagt, das die Datei nicht gefunden wird.
    Zeigt in der Fehlermeldung aber die richtige Datei an und der Pfad ist genau der gleiche worin sich die Datei befindet???

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von michael m. ()

  • Ja ich erinnere mich.
    Ich habe das hier noch mal aufgegriffen, da der Post hier schon seit 2015 bestand.

    Ich glaube ich weis was Du meinst.
    Ich schaue mir noch mal die Doku zu NSDictionary "dictionaryWithObject" an anscheint weis ich es nicht wirklich richtig.
    Mein englisch ist nicht besonders und ich muss sehr viel probieren um es zu verstehen.
    for key hast du mir wirklich gut und ausführlich erklärt.
    Danke

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von michael m. ()