如何通过 NSFileManager 将目录A下所有文件拷贝到 目录B

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过 NSFileManager 将目录A下所有文件拷贝到 目录B相关的知识,希望对你有一定的参考价值。

参考技术A 用cp命令!
给你举个例子吧!把/home/a下的所有文件拷贝到/usr/local/src下:
cp /home/a/* /usr/local/src/a

如何正确地将文本文件传递给 NSFileManager

【中文标题】如何正确地将文本文件传递给 NSFileManager【英文标题】:How to correctly pass a textfile to NSFileManager 【发布时间】:2013-09-16 11:51:00 【问题描述】:

我正在学习 Objective-C,但在将文本文件传递给 NSFileManager 类时遇到问题。我在我的程序所在的同一目录中创建了新的空文件“testfile”,但 NSFileManager 不知何故找不到这个文件。不知道是什么问题:

NSString *fileName = @"testfile";
    NSFileManager *fileMgr;
    NSDictionary *attrib;

    fileMgr = [NSFileManager defaultManager];

    NSLog(@"%@",[fileMgr currentDirectoryPath]);

    // verifying the test file exists
    if([fileMgr fileExistsAtPath: fileName] == NO) 
        NSLog(@"File doesn't exist");
        return 1;
    

这是我的程序的附加屏幕截图

【问题讨论】:

当前目录是什么?那个文件在那个目录里吗? 是的。如果您查看屏幕截图,您可以看到我将它放在文件所在的同一目录中...如果我当然正确理解同一目录的含义 我不认为你这样做。查看NSLog() 调用打印的目录并将其与测试文件所在的位置进行比较。您通常要做的是将文件包含在应用程序包中,然后使用NSBundle 调用来确定应用程序包当前所在的位置。 参见***.com/a/17708041/1187415,了解在构建命令行工具时如何将文件复制到构建目录中。 好的,谢谢,我试试看:) 【参考方案1】:

很可能确定该文件不在程序运行所在的目录中。当您从 Xcode 运行程序时,它通常直接在 Xcode 项目的顶层运行。 NSLog 应该准确地告诉你是哪个目录。

请注意,默认情况下,Xcode 有一个用于整个项目的***目录和用于每个目标的代码的子目录。所以如果你的项目直接在你的主目录下,Xcode 会在

中运行程序
/Users/<your home>/prog36

但您的文本文件(位于目标目录中)在

/Users/<your home>/prog36/prog36

注意两个嵌套目录,都称为prog36

【讨论】:

以上是关于如何通过 NSFileManager 将目录A下所有文件拷贝到 目录B的主要内容,如果未能解决你的问题,请参考以下文章

NSFilemanager 回到一个目录?

如何正确地将文本文件传递给 NSFileManager

NSFileManager UUID 应用目录

如何使用 NSFileManager 复制 UNIX 可执行文件?

如何使用 NSFileManager 将 UIImage 保存到文件中?

如何判断文件是不是已通过 NSFileManager ios 上传