我正在使用蓝牙将文件发送到其他设备。发送的内容是NSData:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString *myFilePath = [documentsDirectoryPath stringByAppendingPathComponent: [NSString stringWithFormat:@"%@.ext", button.titleLabel.text]];
NSData *Recording = [NSData dataWithContentsOfFile:myFilePath];
该文件是图像。收到的文件和视图都很好,但我想将它保存到文件目录中,其名称与之前的名称相同,即button.titleLabel.text。发送文件时,它始终具有名称。我怎么能得到它?
答案 0 :(得分:1)
您需要将文件名作为单独的实体(可能是NSString或NSData)发送,或者,因为它是图像,您可以将文件名添加到EXIF数据中,尽管这并不容易。
答案 1 :(得分:1)
您的代码
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString *myFilePath = [documentsDirectoryPath stringByAppendingPathComponent: [NSString stringWithFormat:@"%@.ext", button.titleLabel.text]];
NSData *Recording = [NSData dataWithContentsOfFile:myFilePath];
制作NSDictionary并输入文件名和图像数据
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjects:myFilePath,Recording forKeys:@"fileName",@"imageData"];
然后将字典转换为NSData,就像这样
NSData *myData = [NSKeyedArchiver archivedDataWithRootObject:dict];
收到数据后再次将数据转换为字典并提取imageData和filePath
NSDictionary *myDictionary = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:myData];