【问题标题】:How to copy all text file from document directory in iOS?如何从 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];

我该怎么做?

【问题讨论】:

  • 显示复制一个文件的代码。
  • 用我的代码编辑了我的问题。

标签: ios cocoa-touch nsfilemanager


【解决方案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 ;)
猜你喜欢
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
相关资源
最近更新 更多