在我的應用我下載一個PDF文件與ASiHttpRequest刪除一個文件,我有以下說明:IOS:在目錄
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
[currentDownload setDownloadDestinationPath:[documentsDirectory stringByAppendingPathComponent:@"file.pdf"]];
它做工精細,在第一時間,我可以打開這個file.pdf ,但是當我第二次下載這個pdf時,它似乎並沒有替換文件,而是進行了合併。
之前,我這樣做,但它不起作用,問題出在哪裏,或從它的路徑中刪除此file.pdf的最佳方法是什麼?
- (void) removeFile{
NSString *extension = @"pdf";
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPDF = [paths objectAtIndex:0];
NSArray *contents = [fileManager contentsOfDirectoryAtPath:documentsDirectoryPDF error:NULL];
NSEnumerator *e = [contents objectEnumerator];
NSString *filename;
while ((filename = [e nextObject])) {
if ([[filename pathExtension] isEqualToString:extension]) {
[fileManager removeItemAtPath:[documentsDirectoryPDF stringByAppendingPathComponent:filename] error:NULL];
}
}
}
編輯
現在我用這個方法
- (void) removeFile{
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0]stringByAppendingString:@"/file.pdf"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSLog(@"Documents directory before: %@", [fileManager contentsOfDirectoryAtPath:[paths objectAtIndex:0] error:&error]);
if([fileManager fileExistsAtPath:path] == YES)
{
NSLog(@"file exist and I delete it");
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtPath:path error:&error];
NSLog(@"error:%@", error);
}
NSLog(@"Documents directory after: %@", [fileManager contentsOfDirectoryAtPath:[paths objectAtIndex:0] error:&error]);
}
這種方法認識到,在目錄中有 「file.pdf」 中的NSLog
NSLog(@"Documents directory before: %@", [fileManager contentsOfDirectoryAtPath:[paths objectAtIndex:0] error:&error]);
但在
之後崩潰"NSLog(@"file exist and I delete it");"
和我只有一個「lldb」在CONSOLle。
也許問題駐留在''ASIHttpRequest''正在檢測該文件存在,並假設你是恢復下載,嘗試設置''allowResumeForFileDownloads''到' 'NO'' – tkanzakic
mmmm不,它不起作用... – CrazyDev
好的,另一個選項可能是緩存問題,您可以檢查屬性「didUseCachedResponse」的值以檢查響應是從緩存中獲取的還是不是,並玩''cachePolicy''和''cacheStoragePolicy''你可以啓用/禁用緩存 – tkanzakic