2016-08-04 63 views
-2

我想從DocumentDirectory中刪除特定項目,即我在DocumentDirectory中有50個對象,我想從中刪除5個不同的元素。我使用下面的代碼來獲取DocumentDirectory對象。如何刪除文檔目錄中的特定項目ios objective c

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); 

任何一個可以幫助我解決這個問題

+0

你可以指定哪些你想刪除的對象? –

+0

你想刪除特定的視頻文件嗎? –

+0

不是視頻文件這個項目我必須刪除FileName,「Name.png」,「Testapp.sqlite」,「Testapp.sqlite-shm」,「Testapp.sqlite-wal」,「image_name」 - –

回答

2

你可以嘗試這樣的方式

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); 
      } 
     } 
    } 
} 
+0

你知道哪個對象你想刪除? –

+0

這是我在文檔目錄中的文件\t 「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個元素 –

+0

@SatheeshkumarNaidu你想從數組中刪除最後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); 
    } 
} 
+0

path = [paths [0] stringByAppendingPathComponent:@「YOUR DIR」];哪個目錄我必須給路徑= [路徑stringByAppendingPathComponent:@「你的文件」];哪些文件我要給 –

+0

「2016-07-27-11-48-11-0.MOV」,「2016-07-27-14-10-25-0.MOV」,「2016-07-27- 「2016-10-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」 –

+0

我想刪除最後6個文件 –