我試圖將一個文件夾只讀,但裏面有文件,到另一個位置。當我使用-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;
}
當你說只讀時,你是指r-x或r--權限? – JWWalker 2010-11-30 20:55:05
它在Finder Get Info中報告「只讀」,在ls -l中報告r-xr-xr-x。我通過將幾個文件複製到一個新文件夾,獲取信息並將所有權限設置爲只讀來創建文件夾。 – Mel 2010-11-30 23:40:04