2011-09-28 54 views
3

我使用ASIHTTPReqeust下載文件。一切正常下載,但它不能將文件從臨時目錄移動到文檔。當我執行ASIHTTPRequestErrorDomain代碼= 8。無法將文件從臨時目錄移動到文檔

-(void) request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data 

請求失敗,並出現錯誤。但文件被下載。

如果我刪除此實現,一切都很好,和文件移動到文檔。 這裏是錯誤文本:

Error Domain=ASIHTTPRequestErrorDomain Code=8 "Failed to move file from '/var/folders/Qu/Qu0o0VcpEY4npJr2C1yPzE+++TI/-Tmp-/Skrillex feat. Nero - Wobbleland.mp3' to '/Users/Timur/Library/Application Support/iPhone Simulator/4.3/Applications/34389282-4013-4354-95D9-DF2847B4EE55/Documents/Audio/Skrillex feat. Nero - Wobbleland.mp3'" UserInfo=0x5949520 {NSUnderlyingError=0x59992a0 "The operation couldn’t be completed. (Cocoa error 4.)", NSLocalizedDescription=Failed to move file from '/var/folders/Qu/Qu0o0VcpEY4npJr2C1yPzE+++TI/-Tmp-/Skrillex feat. Nero - Wobbleland.mp3' to '/Users/Timur/Library/Application Support/iPhone Simulator/4.3/Applications/34389282-4013-4354-95D9-DF2847B4EE55/Documents/Audio/Skrillex feat. Nero - Wobbleland.mp3'} 

誰有類似的問題?

+0

我遇到過類似的問題。 – iDilip

回答

9

的東西,往往抓住人們一點是,你必須創建一個你下載到自己(ASIHTTPRequest不會自動創建)的目錄。

但是給你說這是關係到實現didReceiveData這並不是說。

如果你看ASIHTTPRequest.m,如果你在委託中實現了'didReceiveData',你會發現它設置'dataWillBeHandledExternally' - 這將阻止數據寫入磁盤。您可以自己編寫數據,也可以更改ASIHTTPRequest.m代碼以添加標誌以強制其在內部處理數據。

+0

我已經創建了它。只有當我實現委託方法時纔會出現問題。當我刪除這種方法一切都很完美 –

+0

對不起,我錯過了,顯然我讀的問題太快 - 已更新我的答案。 – JosephH

+0

哦,我明白了,謝謝) –

1

我遇到了同樣的錯誤,但原因是不同的。我會發布我的問題 - 以防萬一其他人有類似的情況。

我試圖刪除舊圖片,保存新的之前。

NSString *mImgName = [managedObj valueForKey:@"aImgName"]; 

NSString * mFilePath = [[self applicationDocumentsDirectory] 
       stringByAppendingPathComponent:mImgName]; 

if ([mFileManager fileExistsAtPath:mFilePath]) 
{ 
    [mFileManager removeItemAtPath:mFilePath error:nil]; 
} 

問題 - 萬一mImgName爲零,mFileManager會刪除整個目錄。

通過添加額外的檢查無或太短mImgName值,它解決了問題。

希望這會幫助別人!

相關問題