簡體   English   中英

Objective-C,NSTask不會觸摸文件

[英]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

至於為什么無法使用NSTasktouch ,也許您沒有修改文件修改時間的權限。 檢查控制台日志以查看是否通過touch報告了任何錯誤,或將任務的標准錯誤輸出重定向到其他地方,然后進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM