LoginSignup
4
2

More than 5 years have passed since last update.

FileManagerまとめ

Posted at

パスの取得

Documents

let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
let documentsPath = NSHomeDirectory() + "/Documents"

Library

let path = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)[0]
let libraryPath = NSHomeDirectory() + "/Library"

Application Support

let path = NSSearchPathForDirectoriesInDomains(.ApplicationSupportDirectory, .UserDomainMask, true)[0]
let applicationSupportPath = NSHomeDirectory() + "/Library/Application Support"

Caches

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
let path = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)[0]
let cachesPath = NSHomeDirectory() + "/Library/Caches"

tmp

NSString *path = NSTemporaryDirectory();
let path = NSTemporaryDirectory()

iOS /tmpと/Cachesディレクトリの違いと運用方法 - Qiita
https://qiita.com/yusuga/items/8c057a67e0ac021c54bc
iOSアプリのファイル保存について - Qiita
https://qiita.com/nnsnodnb/items/13642c4a8d55641f893e

パスの連結

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"hello.txt"];
NSLog(@"filePath=%@", filePath);

存在

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dirPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"NewDir"];

if (![[NSFileManager defaultManager] fileExistsAtPath:dirPath]) {
    NSLog(@"file don't exist.");
}

フォルダの作成

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dirPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"NewDir"];

NSError *error = nil;
if(![[NSFileManager defaultManager] createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error]) {
    NSLog(@"Error occurred when directory was making! [%@]", [error localizedDescription]);
}

移動

[[NSFileManager defaultManager] moveItemAtPath:filePath toPath:afterPath error: &error];

コピー

[[NSFileManager defaultManager] copyItemAtPath:filePath toPath:afterPath error: &error];

削除

[[NSFileManager defaultManager] removeItemAtPath:path error:nil];

内容の取得

NSError *error = nil;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"hello" ofType:@"txt"];
NSString *document = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
NSLog(@"document=%@", document);
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2