我的应用程序中有以下代码(如下),它只是尝试使用 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;
}