Hatena::ブログ(Diary)

csoulsの日記

2011-01-05

NSFileManagerでファイルの属性を取得する

前回の記事でもちょっと書いたけど、NSFileManagerを使うと、ファイルの属性をNSDictionary形式で取得できる。

iOS Reference Library - NSFileManager Class Reference

ファイルシステムの情報を取得する「attributesOfFileSystemForPath:error:」とファイルやディレクトリの情報を取得する「attributesOfItemAtPath:error:」の2つがあるけど、具体的な内容が分かりづらかったのでまとめ。

attributesOfFileSystemForPath:error:の戻り値

説明取得例
ファイルシステムの空きノードNSFileSystemFreeNodes45625207
ファイルシステムの空きサイズ(bytes)NSFileSystemFreeSize186880847872
ファイルシステム全体のノードNSFileSystemNodes60965666
ファイルシステムの管理番号NSFileSystemNumber234881026
ファイルシステム全体のサイズ(bytes)NSFileSystemSize249715376128

attributesOfItemAtPath:error:の戻り値

説明取得例
作成日時NSFileCreationDate"2010-12-30 07:56:22 +0000"
拡張子を隠しているかNSFileExtensionHidden0
所有者のグループIDNSFileGroupOwnerAccountID20
所有者のグループ名NSFileGroupOwnerAccountNamestaff
変更日時NSFileModificationDate"2010-12-30 07:56:22 +0000"
所有者のIDNSFileOwnerAccountID501
所有者の名前NSFileOwnerAccountNameUser Name
ファイルのアクセス権NSFilePosixPermissions493
参照されている数NSFileReferenceCount2
ファイルサイズ(bytes)NSFileSize68
ファイルシステム上のファイル管理番号NSFileSystemFileNumber3245958
ファイルシステムの管理番号NSFileSystemNumber234881026
ファイルタイプNSFileTypeNSFileTypeDirectory

サンプルソースコード

ファイルタイプがNSFileTypeRegularだったら、テキストビューに内容を表示してます。

- (void)loadView {
	[super loadView];
	
	textView = [[UITextView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
	
	/* ファイルの存在確認 */
	if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
		
		/* ファイルタイプの取得 */
		NSDictionary *dict = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:NULL];
		NSString *fileType = [dict objectForKey:NSFileType];

		/* NSFileTypeはNSString型なので、isEqualToStringで比較する */
		if ([fileType isEqualToString:NSFileTypeRegular]) {
			// ファイルをNSASCIIStringEncodingでエンコードしてビューに表示
			NSString *fileCont = [NSString stringWithContentsOfFile:filePath encoding:NSASCIIStringEncoding error:NULL];
			textView.text = fileCont;
		} else {
			textView.text = [NSString stringWithFormat:@"読み込みに失敗しました。\n\nファイル %@ のファイルタイプは %@ です。", filePath, fileType];
		}
	} else {
		textView.text = [NSString stringWithFormat:@"読み込みに失敗しました。\n\nファイル %@ が存在しません", filePath];
	}

	self.view = textView;
}

通りすがり通りすがり 2013/03/16 17:30 どちらも『attributesOfFileSystemForPath:error:の戻り値』になってますね。

csoulscsouls 2013/03/18 23:40 ありがとうございます!修正しましたー。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/csouls/20110105/1295185197