2011-08-30 121 views
0

我正在尋找檢查文檔文件夾中是否存在所需文件的方法。 現在我只有一個文件,這個文件中檢查和工作正常使用此代碼:文檔文件夾中存在文件

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"01.mp3"]; 
if([[NSFileManager defaultManager] fileExistsAtPath:path]) 
{ 
     [progressIndicator setHidden:YES]; 
     [downloadbutton setHidden:YES]; 

} 

什麼是檢查是否像01.mp3,02.mp3,03.mp3多個文件的最好方法......存在於文件夾

問候

+0

你有沒有解決這個問題? – bryanmac

回答

0

你可以嘗試一些附加迭代到您的文件名是這樣的:

for(int i = 0; i < yourFileCount; i++ 
{ 
    NSString *fileName = [NSString stringWithFormat:@"0%i.mp3", i]; 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:fileName]; 
    if([[NSFileManager defaultManager] fileExistsAtPath:path]) 
    { 
     [progressIndicator setHidden:YES]; 
     [downloadbutton setHidden:YES]; 
    } 
} 
+0

只有一個問題,工作正常,但如果我只使用0%i.mp3,我有不同的名稱,如01-thefirstsong.mp3,02-mysecondsong.mp3 ... 15-mylastsong.mp3的mp3文件。我怎樣才能正確的爲stringformat?謝謝 – Ben

2

您需要作廢如果有任何不存在的循環,然後setHidden爲兩者當且僅當allFilesExist

- (BOOL)filesExistInDocuments:(NSArray*)files 
{ 
    BOOL allFilesExist = YES; 

    for (NSString *currFile in files) 
    { 
     NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                     NSUserDomainMask, YES) objectAtIndex:0]; 
     NSString *path = [documentsDirectory stringByAppendingPathComponent:currFile]; 
     NSLog(@"path: %@", path); 

     if(![[NSFileManager defaultManager] fileExistsAtPath:path]) 
     { 
      NSLog(@"not exists!"); 
      allFilesExist = NO; 
      break; 
     } 
    } 

    if (allFilesExist) 
    { 
     [progressIndicator setHidden:YES]; 
     [downloadbutton setHidden:YES]; 
    } 

    return allFilesExist; 
} 
+0

如何設置我的文件列表來檢查這個? – Ben

+0

你可以調用傳遞文件數組到方法的方法。另一種選擇是設置一個iVar或屬性,然後讓該方法對其進行操作。 – bryanmac

相關問題