2012-04-15 35 views
3

プログラム的にお使いのデバイス上ではfile.txtを作成する最も簡単な方法は何ですか、それから、アプリケーションでいくつかのデータを書き留め、あなたにこのデータを送信しますコンピューター?書き込みデータ

私は最後の部分は、デバイスからデータを取得するためにコンピュータ上のいくつかのプログラムを使用するのと同じようにプログラムで行うことができると思います。今これはちょうどそれが存在していない場合は、ファイルを作成し、いくつかのデータを書き留めるが、私は、パスに問題がある。この

NSFileHandle *infile; 
NSFileManager *fm; 
fm=[NSFileManager defaultManager]; 
NSString *strings=[@"/Downloads/file.txt" stringByExpandingTildeInPath]; 

if (![fm fileExistsAtPath:strings]) { 
[fm createFileAtPath:strings contents:nil attributes:nil]; 
infile=[NSFileHandle fileHandleForWritingAtPath:strings]; 
[infile writeData:[[NSString stringWithFormat:@"lalala japierdole\n", [NSDate date]] dataUsingEncoding:NSUTF8StringEncoding]]; 
}else { 
infile=[NSFileHandle fileHandleForWritingAtPath:strings]; 
[infile seekToEndOfFile]; 
} 
[infile writeData:[[NSString stringWithFormat:@"lulukukuioio.\n", [NSDate date]] dataUsingEncoding:NSUTF8StringEncoding]]; 

ようなものをやっているティル

。このコードは、私のデバイスでこれを試しているときに私のシミュレータを使って作業しているときにうまく動作し、ファイルを作成するかどうか、そしてそれを後から受け取る方法を知りません。

+0

これ以外にも、文字列をデバッガやNSLogのステートメントで確認できるように、文字列をwriteステートメントとは別に作成すると便利です。 write文には多くのメソッド呼び出しがあります。あなたの質問に対する答えは@EricSを参照してください。 – zaph

答えて

6

ファイルへの書き込み&生データを読み取るための最も簡単なAPI:あなたが問題を抱えている

NSData *data = [NSData dataWithContentsOfFile:path]; 
[data writeToFile:path atomically:NO]; 

理由は、あなたのパスがデバイス上で有効ではないということです。これを試してみてください:

+0

paths.count> 0をテストする必要がある理由は何ですか? – user523234

+0

パラノイアがほとんどです。テストして空でない場合、[paths objectAtIndex:0]を呼び出すと例外がスローされます。この特定のケースでは空ではない可能性がありますが、ユーザーはディレクトリを移動したり名前を変更したりすることができるため、Mac上で発生することがあります。 NSFileManagerのcreateDirectoryAtPath:withIntermediateDirectories:attributes:errorメソッドを使用してディレクトリが存在しない場合は、おそらくディレクトリを作成します。 – EricS

+0

そして、どうすればこのfile.txtを自分のコンピュータに手に入れることができますか?電子メールを使用して?またはいくつかの他のより良いオプションがありますか? – user1246957