NSFileManager copyItemAtPath/copyItemAtURL funktioniert nicht

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

  • NSFileManager copyItemAtPath/copyItemAtURL funktioniert nicht

    Hallo zusammen,

    ich habe die Anforderung an eine App, dass diese Dateien auf ein Netzlaufwerk kopiert werden sollen. Das Netzlaufwerk steht entweder als Windows-Freigabe oder als Linux Samba Share zur Verfügung. Das Kopieren, Verschieben, Löschen und Erstellen von Dateien auf die Windows-Freigabe funktioniert einwandfrei. Nur beim Linux Samba Share gibt es mit copyItemAtPath/copyItemAtURL und moveItemAtPath/moveItemAtURL Probleme. Das Problem ist, dass meine Mac App immer meldet, dass ich keine Berechtigung habe darauf zuzugreifen.

    Der Zugriff über den Finder funktioniert auf den Linux Samba Share über den Finder einwandfrei. Als Pfad gebe ich /Volumes/<Freigabename> an. Dabei achte ich natürlich auf die Groß- und Kleinschreibung. Eine Datei löschen oder ein Verzeichnis erstellen auf einem Linux Samba Share funktioniert dagegen einwandfrei.

    C-Quellcode

    1. BOOL success = [fileManager copyItemAtPath:self->_sourcePath
    2. toPath:self->_targetPath
    3. error:&error];

    In _sourcePath steht zum Beispiel /Users/<Benutzername>/Documents/Test.txt und in _targetPath steht /Volumens/<Freigabename>/Verzeichnis_1/Test.txt.

    Mein Part in der smb.conf für einen Samba Share sieht folgendermaßen aus :


    Quellcode

    1. [Freigabe]
    2. comment = Verzeichnis fuer Software
    3. path = /media/sdbx/Verzeichnis_1/Freigabe
    4. available = yes
    5. read only = no
    6. writeable = yes
    7. create mask = 0770
    8. directory mask = 0770
    9. invalid users = root bin daemon nobody named sys tty disk mem kmem
    10. valid users = <samba-username>
    11. force user = <samba-username>
    12. force group = <samba-username>
    Alles anzeigen
    Die create und directory mask habe ich auch schon auf den Wert 0777 gesetzt. Leider funktioniert das Kopieren und Verschieben auf den Linux Samba Share auch damit nicht. Ich bekomme auch hier die Meldung, dass ich keine Berechtigungen habe.

    Hatte jemand das gleiche Problem schon mal und wie kann ich das Problem lösen ?
  • Ich habe es jetzt ausprobiert mit dataWithContentsOfFile:options:error: und writeToFile:options:error:. Dann wird die Datei kopiert/erstellt auf dem Linux Samba Share. Nur wenn ich mehrere Dateien kopieren/verschieben muss, kann das ein langwieriger Prozess werden.

    Kann ich überhaupt abfragen, ob es ein Linux Samba Share ist oder ein Windows Share ? Beide benutzen doch das SMB-Protocol.

    Gibt es keine Lösung für copyItemAtPath/copyItemAtURL und moveItemAtPath/moveItemAtURL ?