私のアプリには次のコード(以下)があります。これは、NSTaskを使用して、ディレクトリの時刻/日付スタンプが付いた1つのファイルにアクセスしようとするだけです。常に1つのディレクトリにしかアクセスしないアプリでは問題なく機能しますが、一部のデータにアクセスするためにディレクトリを頻繁に変更する別のアプリでは機能しません。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;
}