2016-05-05 12 views
2

ファイルにデータを書き込もうとしています。私は、ファイルダイアログからNSURLを得ることができていますし、NSURLが得られ、次の値NSFileHandle from NSURLエラー

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はnilです。

任意の手がかり?

答えて

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