2013-01-04 70 views
-3

我有這段代碼,它允許我指定要從我的文檔目錄中刪除的特定文件。ios - 刪除任何文件,但不是文檔目錄中的所有文件

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectoryPath = [[paths objectAtIndex:0] stringByAppendingString:@"/Podcasts"]; 

    NSString* checkIfFileExists = [documentsDirectoryPath stringByAppendingPathComponent:_fileName]; 

    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    [fileManager removeItemAtPath:checkIfFileExists error:NULL]; 

我可以看到這一點,如果你想刪除一個按鈕一個文件是有用的,但不是想只刪除一個特定的文件,我怎麼引用removeItemAtPath:處理陣列中的任何文件?我不希望它一次刪除所有文件。

+0

這可能是使用-fileExistsAtPath的'價值更爲有用:'名爲'checkIfFileExists' – CodaFi

+0

變量的NSLog checkIfFileExists和確保它有正確的路徑。 – Dhara

+0

耶同意了,仍然在設置中,看看它是否工作模式,我會在以後清理它:-) –

回答

1
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectoryPath = [[paths objectAtIndex:0] stringByAppendingString:@"/Podcasts"]; 
NSString* checkIfFileExists = [documentsDirectoryPath stringByAppendingPathComponent:_fileName]; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
BOOL isMyFileThere = [[NSFileManager defaultManager] fileExistsAtPath:checkIfFileExists]; 
if(isMyFileThere){ 

      [fileManager removeItemAtPath:checkIfFileExists error:NULL]; 
} 
else{ 
      //file dont exists 
} 
+0

這工作 - 謝謝你的答案:-) –

+0

@JeffKranenburg Your Welcome – Dhara

1

您可以使用相同的代碼。

但需要將文件名添加到它想:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectoryPath = [[paths objectAtIndex:0] stringByAppendingString:@"/Podcasts"]; 
NSString *file = [documentsDirectoryPath stringByAppendingString:@"%@",[yourFileNamesArray objectAtIndex:0]; 

NSString* checkIfFileExists = [file stringByAppendingPathComponent:_fileName]; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 
[fileManager removeItemAtPath:checkIfFileExists error:NULL]; 
+0

yourFileNamesArray是不一樣的NSArray *路徑? –

+0

@JeffKranenburg:不,它不是相同的數組,如果你已經有一個文件名的數組,如:file1.txt,file2.txt等 –

+0

我相信他認爲你想刪除多個文件,所以他們的名字存儲在陣列。你可以用包含正確文件名的字符串文字替換它,它會工作得很好。 – CodaFi

相關問題