[Object C]_[初級]_[文件修改創建時間和修改時間]

場景:用一些軟件把手機上面的文件,如圖片、音樂、視頻、電子書等文件導出到電腦上,文件的創建時間和修改時間是當前系統的時間,與手機不能保持一致。爲了實現與手機文件一致,手動修改導出的文件的創建時間和修改時間。

具體示例:

#import <Foundation/Foundation.h>

NSDate *stringToDate(NSString* timeStr)
{
    NSDateFormatter *formatter =[NSDateFormatter new];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *date =[formatter dateFromString:timeStr];
    [formatter release];
    return date;

}

NSString *dateToString(NSDate* date)
{
    NSDateFormatter *formatter =[NSDateFormatter new];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
    NSString *currentTime =[formatter stringFromDate:date];
    [formatter release];
    return currentTime;
}

void ModifyFileCreateTimeAndModifyTime()
{
    
    NSFileManager *fm =[NSFileManager defaultManager];
    NSString *filePath =@"/Users/mac-d1/work/7788/11.vcf";
    NSDate *timeDate =stringToDate(@"2015-02-23 12:50:40");
    NSDictionary *dic =[[NSDictionary alloc] initWithObjectsAndKeys:timeDate,NSFileCreationDate,timeDate,NSFileModificationDate,nil];
    //重新設置文件的創建時間和修改時間
    BOOL value= [fm setAttributes:dic ofItemAtPath:filePath error:nil];
    if (value)
    {
        //獲取文件的屬性詞典
        NSDictionary *attr =[fm attributesOfItemAtPath:filePath error:nil];
        //獲取文件的創建時間
        NSDate *createDate = [attr objectForKey:NSFileCreationDate];
        //獲取文件的修改時間
        NSDate *modifiedDate = [attr objectForKey:NSFileModificationDate];
        NSString *createStr =dateToString(createDate);
        NSString *modifiedStr =dateToString(modifiedDate);
        NSLog(@"create:%@,modify:%@",createStr,modifiedStr);

    }
    else
    {
        NSLog(@"修改文件的時間失敗");
    }
    
}


int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        // insert code here...
        NSLog(@"Hello, World!");
        ModifyFileCreateTimeAndModifyTime();
        
    }
    return 0;
}


文件沒有修改之前:


文件修改之後:



發佈了101 篇原創文章 · 獲贊 15 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章