0

我有一个问题,我需要将 Documents 子目录的内容移动到 Documents Directory 的“根目录”。为此,我想将子目录的所有内容复制到 Documents 目录,然后删除我的子目录。

NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentinbox = [documentsDirectory stringByAppendingPathComponent:@"inbox"]

这就是我获取 Documents 目录的路径以及名为 inbox 的子目录的路径的方式。

 NSArray *inboxContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentinbox error:nil];
NSFileManager *fileManager = [NSFileManager defaultManager];

然后我创建一个包含子文件夹中所有文档的数组,并初始化文件管理器。

现在我必须实现 for 循环,为每个文档将文档从子目录复制到 Documents 目录。

for(int i=0;i<[inboxContents count];i++){
  //here there is the problem, I don't know how to copy each file

我想使用moveItemAtPath方法,但是不知道如何获取每个文件的路径。

希望您能理解我的问题,感谢您的帮助 Nicco

4

1 回答 1

2

您可以moveItemAtPath:toPath:error:如下使用。

NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentinbox = [documentsDirectory stringByAppendingPathComponent:@"inbox"];

//Initialize fileManager first
NSFileManager *fileManager = [NSFileManager defaultManager];

//You should always check for errors
NSError *error;
NSArray *inboxContents = [fileManager contentsOfDirectoryAtPath:documentinbox error:&error];
//TODO: error handling if inboxContents is nil

for(NSString *source in inboxContents)
{
    //Create the path for the destination by appending the file name
    NSString *dest = [documentsDirectory stringByAppendingPathComponent:
                      [source lastPathComponent]];

    if(![fileManager moveItemAtPath:source
                            toPath:dest
                             error:&error])
    {
        //TODO: Handle error
        NSLog(@"Error: %@", error);
    }
}
于 2012-07-25T16:56:20.153 回答