【问题标题】:how to delete the specific item in the document directory ios objective c如何删除文档目录中的特定项目ios目标c
【发布时间】:2016-12-10 08:16:49
【问题描述】:

我想从 DocumentDirectory 中删除特定项目,即我在 DocumentDirectory 中有 50 个对象,我想从中删除 5 个不同的元素。我使用以下代码获取 DocumentDirectory 对象。

NSURL *vedioURL;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];

NSLog(@"files array %@", filePathsArray);

谁能帮我解决这个问题

【问题讨论】:

  • 你能指定要删除的对象吗?
  • 您要删除特定的视频文件吗?
  • 不是视频文件这个项目我必须删除 FileName, "Name.png", "Testapp.sqlite", "Testapp.sqlite-shm", "Testapp.sqlite-wal", "image_name" ——

标签: ios objective-c nsdocumentdirectory


【解决方案1】:

你可以这样试试

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
if (filePathsArray.count >= 6) {
    for (NSInteger i=filePathsArray.count-6; i < filePathsArray.count; i++) {
        NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[filePathsArray objectAtIndex:i]];
        if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])  {
           NSError *error;
            if (![[NSFileManager defaultManager] removeItemAtPath:filePath error:&error]) {
                NSLog(@"Delete error: %@", error);
            }
        }
    }
}

【讨论】:

  • 你知道要删除哪个对象吗?
  • 这是我在文档目录 "2016-07-27-11-48-11-0.MOV","2016-07-27-14-10-25-0 .MOV"、"2016-07-27-14-10-40-0.MOV"、"2016-07-27-14-47-26-0.MOV"、"2016-07-27-17-00 -51-0.MOV”、“2016-07-27-17-14-03-0.MOV”、“2016-07-27-18-29-08-0.MOV”、“2016-07-27” -18-35-27-0.MOV" "2016-07-28-09-56-18-0.MOV""2016-07-28-16-47-40-0.MOV", "2016-07 -28-16-52-46-0.MOV","2016-07-29-17-00-12-0.MOV", "2016-08-04-10-59-01-0.MOV", FileName、“Name.png”、“Testapp.sqlite”、“Testapp.sqlite-shm”、“Testapp.sqlite-wal”、“image_name”——我必须删除最后 6 个元素
  • @SatheeshkumarNaidu 你想从数组中删除最后 6 个对象吗?
  • 检查我的编辑以从您的数组中删除最后 6 个对象。
【解决方案2】:

你可以试试下面的方法

NSString *path = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [paths[0] stringByAppendingPathComponent:@"YOUR DIR"];
path = [path stringByAppendingPathComponent:@"YOUR FILE"];
NSError *error;
if ([[NSFileManager defaultManager] fileExistsAtPath:path])     
{
    if (![[NSFileManager defaultManager] removeItemAtPath:path error:&error])   //Delete it
    {
        NSLog(@"Delete file error: %@", error);
    }
}

【讨论】:

  • path = [paths[0] stringByAppendingPathComponent:@"YOUR DIR"];我必须给哪个目录 path = [path stringByAppendingPathComponent:@"YOUR FILE"];我必须提供哪个文件
  • "2016-07-27-11-48-11-0.MOV","2016-07-27-14-10-25-0.MOV","2016-07-27 -14-10-40-0.MOV","2016-07-27-14-47-26-0.MOV","2016-07-27-17-00-51-0.MOV","2016 -07-27-17-14-03-0.MOV”、“2016-07-27-18-29-08-0.MOV”、“2016-07-27-18-35-27-0.MOV” " "2016-07-28-09-56-18-0.MOV""2016-07-28-16-47-40-0.MOV", "2016-07-28-16-52-46-0 .MOV”、“2016-07-29-17-00-12-0.MOV”、“2016-08-04-10-59-01-0.MOV”、文件名、“Name.png”、“Testapp” .sqlite”、“Testapp.sqlite-shm”、“Testapp.sqlite-wal”、“image_name”
  • 我要删除最后 6 个文件
  • 抱歉回复晚了,@NDoc 之前已经回答了。
  • 没问题。我还有其他疑问。我想在收藏视图单元格中播放此视频,并且收藏还有其他 15 张图片我想将视频添加为第 16 个元素
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-17
  • 2018-01-04
相关资源
最近更新 更多