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]];

如果文件不存在,这只是创建文件并写下一些数据,但路径有问题。当我在我的设备上尝试使用模拟器时,这段代码运行良好,然后我真的不知道我是否创建了文件以及以后如何从它接收。

4

1 回答 1

6

用于将原始数据读取和写入文件的最简单 API:

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

您遇到问题的原因是您的路径在设备上无效。尝试这个:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if ( paths.count > 0 )
{
  NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"file.txt"];
  NSData *data = [NSData dataWithContentsOfFile:path];
  ...
}
于 2012-04-15T14:23:40.707 回答