如何从 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 的文档目录中复制所有文本文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从c ++中的给定目录中删除所有文本文件

给web项目整合富文本编辑器

如何从 Word 文档中复制富文本内容控件的内容并使用 Open XML SDK 删除控件本身

将多个txt文本文件合并成一个txt文件

如何使用javascript替换textarea元素中的文本? [复制]

在 React JS 中:如何使用 MUI 中的“复制全部”图标从网格中复制所有文本