File

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
スレッドセーフティー
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
defaultManagerで取得したインスタンスはスレッドセーフではありません。

// 非スレッドセーフ
NSFileManager *fileManager = [NSFileManager defaultManager];
マルチスレッドで利用する場合はalloc+initでインスタンスを生成してください。

// スレッドセーフなNSFileManager
NSFileManager *fileManager = [[NSFileManager alloc] init];

// 使い終わったらrelease
[fileManager release];


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ディレクトリ作成
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/**
*  ディレクトリを作成する
*  @param path ディレクトリパス
*  @return 無し
*/
+ (void)createDirectoryAtPath:(NSString *)path
{
    if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
        
        NSError *error = nil;
        [[NSFileManager defaultManager] createDirectoryAtPath:path
                                  withIntermediateDirectories:YES
                                                   attributes:nil
                                                        error:&error];
        if (error) {
            NSLog(@"%@", error.description);
        }
    }
}


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ファイル(ディレクトリ)有無チェック
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/**
*  ファイル(ディククトリ)の有無を返す
*  @param path ファイル(ディレクトリ)パス
*  @return ファイル(ディククトリ)の有無
*/
- (BOOL)isExistsAtPath:(NSString *)path
{
    return [[NSFileManager defaultManager] fileExistsAtPath:path];
}



_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ファイルデータ変換
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
例)PDFファイル -> NSData
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"xxx.pdf"]];

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
リソースファイルパス取得
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"json"];


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
パスの連結
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
NSString *dirA = [dir stringByAppendingPathComponent:@"dirA"];
NSString *pathA = [dirA stringByAppendingPathComponent:@"image.png"];
NSLog(@"%@", pathA);

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ファイル操作
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
NSFileManager *fm = [NSFileManager defaultManager];
NSError *error = nil;

・作成
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://xxx/xxx.png"]];
[fm createFileAtPath:pathA contents:data attributes:nil];
・削除
[fm removeItemAtPath:pathA error:&error];
・移動
[fm moveItemAtPath:pathA toPath:pathB error:&error];
・コピー
[fm copyItemAtPath:pathA toPath:pathB error:&error];

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
ファイル削除
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
NSString *filePath = @"xxxxxxxxxx";
NSError *error = nil;
NSFileManager *fm = [NSFileManager defaultManager];
BOOL result = [fm removeItemAtPath:pdfFilePath error:&error];
if (result) {
  NSLog(@"ファイルを削除に成功:%@", filePath);
} else {
  NSLog(@"ファイルの削除に失敗:%@", error.description);
}

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
キャッシュファイルサイズを取得する
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(unsigned long long int)countCacheSize
{
    unsigned long long int cacheSize = 0;
    NSFileManager *fm = [NSFileManager defaultManager];
    NSError *error;

    NSArray *cachePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cacheDirectory = [cachePaths objectAtIndex:0];
    NSArray *cacheFileList = [fm subpathsAtPath:cacheDirectory];
    NSEnumerator *cacheEnumerator = [cacheFileList objectEnumerator];

    NSString *cacheFilePath;
    while (cacheFilePath = [cacheEnumerator nextObject]) {
        NSString *path = [cacheDirectory stringByAppendingPathComponent:cacheFilePath];
        NSDictionary *cacheFileAttributes = [fm attributesOfItemAtPath:path error:&error];
        cacheSize += [cacheFileAttributes fileSize];
     }
     NSLog(@"%llu", cacheSize);
     return cacheSize;
}
最終更新:2016年05月26日 17:57