如何从 iOS 的文档目录中复制所有文本文件?

Posted

技术标签:

【中文标题】如何从 iOS 的文档目录中复制所有文本文件?【英文标题】:How to copy all text file from document directory in iOS? 【发布时间】:2013-08-15 11:10:37 【问题描述】:

我需要将文档目录中的所有文本文件 (.txt) 复制到我的文件夹名称“Text”中。

我只能复制一个文件。

我想一键复制(*.txt)

这里的代码是我的单个文件副本。

self.fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *cutExtension = [tblGetNameToMove.textLabel.text stringByDeletingPathExtension];

NSString *txtPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt",cutExtension]];

NSString *fileName = [NSString stringWithFormat:@"%@/Text/%@.txt",documentsDirectory,cutExtension];

[self.fileManager copyItemAtPath:txtPath toPath:fileName error:&error];

我该怎么做?

【问题讨论】:

显示复制一个文件的代码。 用我的代码编辑了我的问题。 【参考方案1】:

获取文件夹中的所有内容

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSArray *fileList = [[NSFileManager defaultManager] directoryContentsAtPath:documentsDirectory];

枚举文件列表并检查它是否包含 .txt

[fileList enumerateObjectsUsingBlock:^(NSString *string, NSUInteger index, BOOL *stop) 

  if ([string hasSuffix:@".txt"]) 
    [[NSFileManager defaultManager]copyItemAtPath:strdestination toPath:toPath error:&Error];
  
];

更新

根据 Martin R 的 cmets 更新了我的答案

更新 2

正如 Hot Licks 所指出的那样使用

if ([[string pathExtension] isEqualToString:@"txt"]) 

检查文件扩展名。

【讨论】:

我会使用if ([string pathExtension] == @"txt") ... [fileName hasSuffix:@"txt"] 是检查后缀的正确方法。 @IanL:永远不要将 NSString 与“==”进行比较! 目标是字符串吗? 大声笑-马丁好点!大脑冻结时刻!!永远不要不假思索地输入 cmets ;)

以上是关于如何从 iOS 的文档目录中复制所有文本文件?的主要内容,如果未能解决你的问题,请参考以下文章