В моем проекте у меня есть два файла .txt(в папке Ресурсы), как я могу скопировать их в папку документов?
IOS: скопируйте файл в папку с документами
Ответ 1
Копирует txtFile
из ресурса в документ, если он еще не присутствует.
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *txtPath = [documentsDirectory stringByAppendingPathComponent:@"txtFile.txt"];
if ([fileManager fileExistsAtPath:txtPath] == NO) {
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"txtFile" ofType:@"txt"];
[fileManager copyItemAtPath:resourcePath toPath:txtPath error:&error];
}
Если вы хотите перезаписать каждый раз, попробуйте следующее:
if ([fileManager fileExistsAtPath:txtPath] == YES) {
[fileManager removeItemAtPath:txtPath error:&error];
}
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"txtFile" ofType:@"txt"];
[fileManager copyItemAtPath:resourcePath toPath:txtPath error:&error];
Ответ 2
Swift 3
код для файла существует или нет, а затем не копируется.
func CheckFileisExistOrNot(strPath:String) {
let filemgr = FileManager.default
if !filemgr.fileExists(atPath: strPath) {
let resorcePath = Bundle.main.path(forResource: "\(Global.g_databaseName)", ofType: ".db")
do {
try filemgr.copyItem(atPath: resorcePath!, toPath: strPath)
}catch{
print("Error for file write")
}
}
}
Ответ 3
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [[paths objectAtIndex:0]stringByAppendingString:@"csvfile"];
NSString *txtPath = [documentsDirectory stringByAppendingPathComponent:@"sample.csv"];
if ([fileManager fileExistsAtPath:txtPath] == NO) {
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@".csv"];
[fileManager copyItemAtPath:resourcePath toPath:txtPath error:&error];