2011-01-19 13 views
1

私は、/ User/Library/Preferences /ディレクトリにあるいくつかのplistファイルのサイズをチェックする関数を持っています。テスト目的のために、私は私のマシン上の〜500kbの環境設定ファイルを持っているiTunesを使用しています。NSFileManager FileSize問題 - Cocoa OSX

EDIT:回答ごとにコードを修正しました。投稿されたとおり、このコードは正しく動作します。

NSString *obj = @"iTunes"; 
    NSString *filePath = [NSString stringWithFormat:@"/Applications/%@.app",obj]; 
    NSString *bundle = [[NSBundle bundleWithPath:filePath] bundleIdentifier]; 

    NSString *PropertyList=[NSString stringWithFormat:@"/Preferences/%@.plist",bundle]; 
    NSString* fileLibraryPath = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:PropertyList]; 

    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:fileLibraryPath]; 

    if (fileExists) { 
     NSError *err = nil; 
     NSDictionary *fattrib = [[NSFileManager defaultManager] attributesOfItemAtPath:fileLibraryPath error:&err]; 

     if (fattrib != nil){    
      //Here I perform my comparisons 

      NSLog(@"%i %@", [fattrib fileSize],obj); 

     } 
    } 

しかし、関係なく、私は何をすべきか、サイズは102ない102キロバイトとして返されていない、ちょうど102私がobjectForKey使用している:NSFileSizeを、私はのstringValue、すべて102


を使用していました

下記の選択された回答に記載されているとおり、レッスンで学んだのは、NSFileManagerに送信するパスを常に確認することです。

ありがとうございます! 102バイト -

NSDictionary *fattrib = [ ... attributesOfItemAtPath:filePath error:&err]; 

で使用している

+0

そのパスにあるファイルのディスク上の実際のファイルサイズはどれくらいですか? –

答えて

3

filePathは私のシステムで/Applications/Mail.appについて同じ、サイズ102バイトのディレクトリです

/Applications/iTunes.app 

ように見えます。その道はあなたが意図したものではないということだけですか?

+0

OMFG - 私はそれを見ていないとは思わない。ありがとうございました。 –