2016-05-05 51 views
2

我想寫一些數據到文件。我能夠從一個文件對話框,獲得NSURL和獲得的NSURL具有以下值從NSURL失敗NSFileHandle

file:///Users/brad/Documents/2016-05-04-06-53-35.csv 

我的代碼執行以下操作:

NSURL* myFile = [panel URL]; // is  file:///Users/brad/Documents/2016-05-04-06-53-35.csv 
NSError *error = nil; 

NSFileHandle *myFileHandle = [NSFileHandle fileHandleForWritingToURL:myFile error:&error]; 
NSLog(@"%@",error); 

if (myFileHandle) 
{ 
    ... // do something 
} 
else 
{ 
NSLog(@"File operation failed"); 
} 

我得到指示以下

錯誤
Error Domain=NSCocoaErrorDomain Code=2 "(null)" UserInfo={NSFilePath=/Users/brad/Documents/ 

此外myFileHandle爲零。

任何線索?

回答

2

請參閱NSFileHandle fileHandleForWritingToURL:error:的文檔。如果文件不存在,則返回nil

使用NSFileManager先檢查文件是否存在。如果不是,請使用NSFileManager createFileAtPath:contents:attributes:創建一個空文件。

NSURL *myFile = [panel URL]; 
if (![[NSFileManager defaultManager] fileExistsAtPath:[myFile path]]) { 
    [[NSFileManager defaultManager] createFileAtPath:[myFile path] contents:[NSData data] attributes:nil]; 
} 

NSError *error = nil; 

NSFileHandle *myFileHandle = [NSFileHandle fileHandleForWritingToURL:myFile error:&error]; 
+0

謝謝!這工作! – Maverick447