_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
スレッドセーフティー
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
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