[英]Objective-C, NSTask won't touch files
我的應用程序中包含以下代碼(如下),該代碼只是嘗試使用NSTask觸摸目錄時間/日期戳記的一個文件。 它在只始終訪問一個目錄的應用程序中工作得很好,但是,與經常更改目錄以訪問其中某些數據的目錄不兼容。 當我檢查currentfile和currentpath時,它們都顯示正確的路徑。 我已經想到的一切可能性都已到期。 任何幫助將不勝感激-謝謝。
- (void)someMethod:(NSString *)currentfile {
NSFileManager *filemanager = [[NSFileManager alloc] init];
if ([filemanager changeCurrentDirectoryPath: @"/"] == NO)
NSLog (@"Cannot change directory.\n");
NSString *currentpath = [filemanager currentDirectoryPath];
NSLog (@"Current directory is %@", currentpath);
[filemanager release];
NSArray*arguments = [NSArray arrayWithObjects:@"-r",currentpath,currentfile,nil];
[self touchFiles:arguments];
return;
}
- (void)touchFiles:(NSArray *)arguments {
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/bin/touch"];
[task setArguments:arguments];
[task launch];
[task release];
return;
}
您可以不使用NSTask
來更改文件的修改時間。 將-[NSURL setResourceValue:forKey:error:]
與鍵NSURLContentModificationDateKey
。
至於為什么無法使用NSTask
和touch
,也許您沒有修改文件修改時間的權限。 檢查控制台日志以查看是否通過touch
報告了任何錯誤,或將任務的標准錯誤輸出重定向到其他地方,然后進行檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.