顯然,NSFileManager
是無法刪除的mkstemp()
創建的文件。下面是一些測試代碼來證明這一點:無法在Mac OS X中刪除)由mkstemp(創建的文件
char pathCString[] = "/tmp/temp.XXXXXX";
int fileDescriptor = mkstemp(pathCString);
if (fileDescriptor == -1) {
NSLog(@"mkstemp failed");
} else {
close(fileDescriptor);
NSURL *url = [NSURL URLWithString:[NSString stringWithCString:pathCString encoding:NSASCIIStringEncoding]];
NSLog(@"URL: %@", url);
NSError *error;
if (![[NSFileManager defaultManager] removeItemAtURL:url error:&error]) {
NSLog(@"could not delete file: %@", error);
}
}
下面是我在日誌中看到,當我運行上面的代碼:
URL: /tmp/temp.A7DsLW
could not delete file: Error Domain=NSCocoaErrorDomain Code=4 UserInfo=0x1001108a0 "The file 「temp.A7DsLW」 doesn’t exist."
我在Snow Leopard上運行此。關於爲什麼發生問題和/或如何解決問題的任何想法?
謝謝!
事實證明,使用的unlink()不工作,所以顯然這是一個的NSFileManager問題。 – splicer 2010-03-31 20:47:54