タイムスタンプを取得するコードを教えてください。
ちょっと忙しくて再回答が遅れました。
申し訳ありません。
それと「&@」ではなくて「%@」ですね。
併せてお詫び致します。
さて、 -attributesOfItemAtPath:error のメソッドで返る NSDictionary を NSLog で出力したところ、 NSFileCreationDate のキーがありませんでした。
ドキュメントには書いてありますが、実際には存在しないために null が出力されているようです。
なぜこのようになるのかは分かりませんが、ざっと検索してみるとiPhoneではこうなっているようです。
http://stackoverflow.com/questions/1140696/cant-get-filecreation...
代替方法としては、 NSFileCreationDate の代わりに NSFileModificationDate のキーを使うことです。
ファイルを作成した日時ではなく、ファイルを最後に編集した日時を得ることになりますが、ローカルに保存したファイルのタイムスタンプを得るだけであれば特に問題はないと思われます。
NSString *filePath = @"path for the file"; NSError *error = nil; NSDate *fileCreationDate; NSFileManager *fileManager = [NSFileManager defaultManager]; NSDictionary *attributes = [fileManager attributesOfItemAtPath:filePath error:&error]; if (error != nil) { NSLog(@"Error : %@", [error localizedDescription]); } else { fileCreationDate = [attributes objectForKey:NSFileCreationDate]; NSLog(@"File creation date : &@", fileCreationDate); }
http://developer.apple.com/iphone/library/documentation/Cocoa/Re...
テストしていないので細かな間違いなどあればすみません。
保存したファイルへのパスさえ分かっていれば、おおよそこのようなコードで得られるのではないかと思います。
もしファイルを保存したディレクトリまでは分かっていて、ファイルへのパスが分からないのであれば、 NSFileManager の -contentsOfDirectoryAtPath:error: メソッドを使うことになるでしょう。
ご回答ありがとうございます。
以下のようなコードで、ファイル書き込みに
成功したときにそのfilePathでNSLogしても
nullになってしまうようです。
できれば試していただけるとうれしいです(^^;
NSLog(@"%@", filePath);
if ([data writeToFile:filePath atomically:YES]) {
NSError *error = nil;
NSDate *fileCreationDate;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDictionary *attributes = [fileManager attributesOfItemAtPath:filePath error:&error];
if (error != nil) {
NSLog(@"Error : %@", [error localizedDescription]);
} else {
fileCreationDate = [attributes objectForKey:NSFileCreationDate];
// NSLog(@"File creation date : &@", fileCreationDate); // &@ ではなく %@ ?
NSLog(@"File creation date : %@", fileCreationDate);
}
}
ちょっと忙しくて再回答が遅れました。
申し訳ありません。
それと「&@」ではなくて「%@」ですね。
併せてお詫び致します。
さて、 -attributesOfItemAtPath:error のメソッドで返る NSDictionary を NSLog で出力したところ、 NSFileCreationDate のキーがありませんでした。
ドキュメントには書いてありますが、実際には存在しないために null が出力されているようです。
なぜこのようになるのかは分かりませんが、ざっと検索してみるとiPhoneではこうなっているようです。
http://stackoverflow.com/questions/1140696/cant-get-filecreation...
代替方法としては、 NSFileCreationDate の代わりに NSFileModificationDate のキーを使うことです。
ファイルを作成した日時ではなく、ファイルを最後に編集した日時を得ることになりますが、ローカルに保存したファイルのタイムスタンプを得るだけであれば特に問題はないと思われます。
NSFileModificationDateで取得できました。
年のためですが、参照のみではタイムスタンプも
変更されないようなので、完璧です!
ありがとうございました。
NSFileModificationDateで取得できました。
年のためですが、参照のみではタイムスタンプも
変更されないようなので、完璧です!
ありがとうございました。