NSFileManager -Copyitematpath: Topath: خطأ: فشل مع مجلد القراءة فقط

StackOverflow https://stackoverflow.com/questions/4318406

سؤال

أحاول نسخ مجلد يقرأ فقط ، ولكن يحتوي على ملفات بداخله ، إلى موقع آخر. عندما أستخدم -copyitematpath: Topath: خطأ: يقوم بنسخ المجلد ، ولكن ليس الملفات. نموذج رمز يوضح أن الخطأ أدناه.
إن تغيير أذونات المجلد قبل النسخ ليس خيارًا في هذه الحالة.
هل يمكن لأي شخص تقديم اقتراح؟

الخطأ هو:
مجال الخطأ = رمز nsposixerrordomain = 13 userInfo = 0x1001102A0 "لا يمكن إكمال العملية. تم رفض الإذن"

userInfo من الخطأ هو: {
nsDestinationFilePath = "/user/xxxxxxx/desktop/readOnlyFileCopy/testdir/Abbey Road.jpg" ؛
nsfilepath = "/user/xxxxxxx/desktop/testdir/abbey road.jpg" ؛
nsUserStringVariant = نسخة ؛
}

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSString* src = @"/Users/xxxxxxx/Desktop/testdir";
    NSString* target = @"/Users/xxxxxxx/Desktop/readonlyfilecopy/testdir";
    NSError* error = nil;

    [[NSFileManager defaultManager] copyItemAtPath:src toPath:target error:&error];

    if (error) {
        NSLog(@"%@", error);
        NSLog(@"%@", [error userInfo]);
    }

    [pool drain];
    return 0;
}
هل كانت مفيدة؟

المحلول

هل أنت متأكد من أنه يمكنك قراءة كل ملف في المجلد. إذا كان الأمر كذلك ، فقد يكون هذا في الواقع حشرة الكاكاو. من الممكن تمامًا أن تقوم بإنشاء مجلد جديد ، وتعيينه للقراءة فقط ، ثم محاولة نسخ الملفات إلى المجلد. إذا كنت تستطيع إعادة إنتاج هذا في حالة اختبار صغيرة ، فيجب عليك إرسال خطأ إلى Apple.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top