2010-09-28 105 views
1

我正在調用-writeToFile:atomically:在包含我剛剛拍攝的視頻的NSData對象上。 該文件沒有被寫入,如果我使用返回erorr對象的版本,則錯誤爲零。以NSData對象的形式將文件保存到文件

我的代碼是:

if ([[info valueForKey:UIImagePickerControllerMediaType] isEqualToString:@"public.movie"]) { 
     NSURL* url = [info valueForKey:UIImagePickerControllerMediaURL]; 
     NSData *videoData = [NSData dataWithContentsOfURL:url]; 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 
     NSString *fPath = [documentsDirectory stringByAppendingPathComponent:@"capturedVideo.MOV"]; 
     [videoData writeToFile:fPath atomically:YES]; 
} 

返回值是NO,當我檢查的書面文件的存在,它不存在。

任何想法?

回答

0

嘗試在寫入之前使用NSFileManager創建文件。

+0

剛剛嘗試過,我有同樣的問題。但即使在我嘗試之前,我注意到另一個線索。我實際上從writeToFile獲得YES,如果在寫入文件後檢查文件是否存在,我會得到一個YES。但後來當我檢查它是否存在(在同一會話中)時,我得到了一個N​​O。我打印出兩條路徑,它們是相同的。所以writeToFile必須創建文件本身。我錯過了什麼嗎? (顯然,因爲它還沒有工作) – 2010-09-28 14:40:59

+0

我不這樣做可以幫助,但是,在模擬器上,您可以確保創建文件並找到它隨查找器消失的時刻。 – eviltrue 2010-09-28 20:53:03