gpt4 book ai didi

ios - NSFileManager:如果存在重复文件

转载 作者:行者123 更新时间:2023-12-01 19:13:06 34 4
gpt4 key购买 nike

复制文件时,我想在我的iOS应用程序中包含OSX行为:如果存在,则在其上附加一个计数器:

  • myFile.png => myFile 1.png
  • myFile20.png => myFile20 1.png
  • myFile 20.png => myFile 21.png
  • ...

  • 是否有内置方法可以执行此操作,或者我必须自己构建该功能?我找不到类似的东西,但我不认为我是第一个需要这种行为的人...

    最佳答案

    您可以执行以下操作,其中requestedName是用户选择的文件名,extension是文件的扩展名,basePath是您要存储在其中的文件夹:

     NSFileManager *fm = [NSFileManager defaultManager];
    NSString * filename = requestedName;

    if ([fm fileExistsAtPath:[basePath stringByAppendingPathComponent:requestedName]])
    {
    unsigned int counter = 1;
    while ( [fm fileExistsAtPath: [basePath stringByAppendingPathComponent: filename]])
    {
    //NSLog(@"File already exists %@", filename);
    NSURL *originalFilePath = [NSURL URLWithString:[kTempPath stringByAppendingPathComponent:filename]];
    filename = [[NSString stringWithFormat: @"%@-%d",
    [requestedName stringByDeletingPathExtension], counter]stringByAppendingPathExtension: extension];
    counter ++;
    NSURL *newFilePath = [NSURL URLWithString:[kTempPath stringByAppendingPathComponent:filename]];
    [fm moveItemAtURL:originalFilePath toURL:newFilePath error:nil];
    // just in case
    if (counter > 512) break;
    }
    }

    如果文件不存在,则使用NSFileManager中的 moveItemAtURLmoveItemAtPath将其移动到正确的位置。

    关于ios - NSFileManager:如果存在重复文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15107637/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com