2010-11-30 44 views
1

我試圖將一個文件夾只讀,但裏面有文件,到另一個位置。當我使用-copyItemAtPath:toPath:error時:它複製文件夾,但不復制文件。演示錯誤的示例代碼如下。
在這種情況下,在複製之前更改文件夾的權限不是一個選項。
任何人都可以提供一個建議嗎?NSFileManager -copyItemAtPath:toPath:錯誤:使用只讀文件夾失敗

的錯誤是:
錯誤域= NSPOSIXErrorDomain代碼= 13的UserInfo = 0x1001102a0 「操作無法完成權限被拒絕」

錯誤的用戶信息是:{
NSDestinationFilePath =「/用戶/ xxxxxxx/Desktop/readonlyfilecopy/testdir/Abbey Road.jpg「;
NSFilePath =「/ Users/xxxxxxx/Desktop/testdir/Abbey Road.jpg」;
NSUserStringVariant = Copy;
}

#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; 
} 
+0

當你說只讀時,你是指r-x或r--權限? – JWWalker 2010-11-30 20:55:05

+0

它在Finder Get Info中報告「只讀」,在ls -l中報告r-xr-xr-x。我通過將幾個文件複製到一個新文件夾,獲取信息並將所有權限設置爲只讀來創建文件夾。 – Mel 2010-11-30 23:40:04

回答

1

你確定你可以閱讀該文件夾中的每一個文件。如果是這樣,那麼這可能實際上是一個可可錯誤。它完全有可能創建一個新文件夾,將其設置爲只讀,然後嘗試將文件複製到文件夾中。如果你可以在一個小的測試用例中重現這個,你應該給蘋果公司submit a bug

相關問題