删除非空文件夹和特定文件类型

发布于 2024-08-02 15:48:12 字数 115 浏览 5 评论 0原文

  1. 删除文件夹、删除所有子文件夹和文件的最佳方法是什么?
  2. 删除具有特定扩展名的文件的最佳方法是什么?例如,如果我只想删除扩展名为“.txt”的文件?

可可或碳。

  1. What is the best way to remove a folder, deleting all subfolders and files?
  2. What is the best way to remove files with a specific extension; e.g., if I want to remove only files with '.txt' extension?

Cocoa or carbon.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

自由范儿 2024-08-09 15:48:12

要删除目录树(或文件),请使用 -[NSFileManager removeItemAtPath:error:]。这会直接删除文件(并且会删除全部);如果您想将项目移至垃圾箱,请使用 NSWorkspaceRecycleOperation

至于仅删除具有特定扩展名的文件:获取每个路径名的 pathExtension 并使用 caseInsensitiveCompare: 将其与您要查找的文件进行比较,然后删除该文件(如果存在)你的热门名单。

如果您想将两者结合起来(即仅删除目录树中具有给定扩展名的文件),您需要从 NSFileManager 获取目录枚举器并自己遍历目录树,将文件一一删除。

To remove a directory tree (or file), use -[NSFileManager removeItemAtPath:error:]. This deletes the files directly (and it will delete all of them); if you want to move the item to the Trash instead, use NSWorkspaceRecycleOperation .

As for removing only files with specific extensions: Get each pathname's pathExtension and use caseInsensitiveCompare: to compare it to the ones you're looking for, then remove the file if it's on your hit list.

If you want to combine the two (i.e., remove only files within a directory tree that have a given extension), you'll need to get a directory enumerator from the NSFileManager and walk the directory tree yourself, removing files one by one.

樱&纷飞 2024-08-09 15:48:12

是的,一定要使用回收站,除非它们是用户不应该看到/知道的文件。

Yep, be sure to use therecycle bin unless of course they are files the user shouldn't see/know about.

小ぇ时光︴ 2024-08-09 15:48:12

要删除具有特定扩展名的文件..

至少有一种方法.. 此示例只是在应用程序文档目录中查找任何具有扩展名 jpg 的文件并将其删除..

    NSFileManager *fManager = [NSFileManager defaultManager];
    NSString *dir = [self applicationDocumentsDirectory];

    NSError *error;
    NSArray *files = [fManager contentsOfDirectoryAtPath:dir error:&error];

    for (NSString *file in files) {

          if ([[[file pathExtension] lowercaseString] isEqualToString: @"jpg"]) 
          {
              [fManager removeItemAtPath: [dirstringByAppendingPathComponent:file] error:&error];
              NSLog(@"removed: %@",file);
          }

          if (error) {
             //deal with it
          }
     }

To remove files with specific extension..

One way at least.. This example is just looking in the application documents directory for any files with the extension jpg and removing them..

    NSFileManager *fManager = [NSFileManager defaultManager];
    NSString *dir = [self applicationDocumentsDirectory];

    NSError *error;
    NSArray *files = [fManager contentsOfDirectoryAtPath:dir error:&error];

    for (NSString *file in files) {

          if ([[[file pathExtension] lowercaseString] isEqualToString: @"jpg"]) 
          {
              [fManager removeItemAtPath: [dirstringByAppendingPathComponent:file] error:&error];
              NSLog(@"removed: %@",file);
          }

          if (error) {
             //deal with it
          }
     }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文