获取Documents目录下的文件,将相同后缀的文件放到同一数组中

本文介绍如何使用Swift编程语言结合Foundation框架中的类来读取iOS设备Documents目录下的所有MP3文件,并将这些文件名存储到NSMutableArray中。具体实现包括获取Documents路径、列举目录下所有文件以及筛选出特定格式的文件。

  

宏定义

#define FILEPATH [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]


NSFileManager * fileManager = [NSFileManager defaultManager];

    NSArray * tempFileList = [[NSArray alloc] initWithArray:[fileManager contentsOfDirectoryAtPath:FILEPATH error:nil]];

//    NSLog(@"%@", tempFileList); 打印Documents文件夹下的文件

    NSMutableArray *array = [NSMutableArray arrayWithCapacity:0];

    

    for (int i = 0; i < tempFileList.count; i++) { 

						//遍历Documents目录

        if ([[tempFileList[i] pathExtension] isEqualToString:@"mp3"]) {  

						//取得后缀名这.MP3的文件名

            [array addObject:tempFileList[i]];  //存到数组

        }

    }


在Ubuntu系统中,将多个文件移动或复制到同一目录是一个常见的操作。可以通过命令行工具 `cp`(复制)和 `mv`(移动)来完成这些任务。 ### 使用 `cp` 命令复制多个文件 如果你想将多个文件复制到同一个目标目录中,可以使用以下命令格式: ```bash cp 文件1 文件2 ... 目标目录 ``` 例如,假设你有三个文件:`file1.txt`、`file2.txt` 和 `file3.txt`,并且你想将它们复制到 `/home/user/documents/` 目录中,可以执行以下命令: ```bash cp file1.txt file2.txt file3.txt /home/user/documents/ ``` 如果这些文件位于不目录中,你可以指定每个文件的完整路径。例如: ```bash cp /path/to/file1.txt /another/path/to/file2.txt /yet/another/path/to/file3.txt /home/user/documents/ ``` ### 使用 `mv` 命令移动多个文件 类似地,如果你希望将多个文件移动到同一个目标目录中,可以使用 `mv` 命令。其基本语法如下: ```bash mv 文件1 文件2 ... 目标目录 ``` 以样的例子,将 `file1.txt`、`file2.txt` 和 `file3.txt` 移动到 `/home/user/documents/` 目录中,可以执行: ```bash mv file1.txt file2.txt file3.txt /home/user/documents/ ``` 样,如果这些文件分布在不的位置,也可以通过指定完整路径来进行移动: ```bash mv /path/to/file1.txt /another/path/to/file2.txt /yet/another/path/to/file3.txt /home/user/documents/ ``` ### 使用通配符进行批量操作 如果你需要处理大量具有相同模式的文件,可以使用通配符 `*` 来简化命令。例如,如果你想复制所有 `.txt` 文件到目标目录,可以使用: ```bash cp *.txt /home/user/documents/ ``` 样,对于移动操作,可以使用: ```bash mv *.txt /home/user/documents/ ``` 需要注意的是,在使用通配符时要确保当前目录中的文件符合预期,以免误操作不必要的文件。 ### 使用 `rsync` 进行高效复制 对于更复杂的复制需求,尤其是涉及大量文件或需要保持文件属性的情况下,推荐使用 `rsync` 工具。它提供了更多的选项和更高的效率。例如,要将多个文件复制到目标目录并保留文件属性,可以使用: ```bash rsync -av 文件1 文件2 ... 目标目录 ``` 具体示例如下: ```bash rsync -av file1.txt file2.txt file3.txt /home/user/documents/ ``` 这里 `-a` 表示归档模式,会保留原始文件的所有属性;`-v` 表示详细输出[^2]。 ### 注意事项 - 在执行任何文件操作之前,请确认目标目录是否存在,并且你有足够的权限对其进行写入。 - 如果目标目录中已经存在文件,`cp` 和 `mv` 会默认覆盖这些文件。为了避免意外覆盖,可以在命令中添加 `-i` 参数以启用交互式提示,询问是否覆盖现有文件: ```bash cp -i file1.txt file2.txt /home/user/documents/ mv -i file1.txt file2.txt /home/user/documents/ ``` - 对于系统级操作(如修改系统文件),可能需要使用 `sudo` 提升权限才能成功执行命令: ```bash sudo cp file1.txt /etc/ sudo mv file2.txt /var/log/ ``` 通过上述方法,用户可以根据具体需求选择合适的命令来高效地管理Ubuntu系统中的文件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值