2013-09-04 3 views
1

Я использую Bluetooth для отправки файлов на другие устройства. Контент, отправленный, является NSData:Извлечение имени файла из 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. Когда вы отправляете файл, он всегда имеет имя. Как я могу его получить?

+3

Отправить имя в качестве отдельной части информации до или после того, как документ , – Wain

ответ

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

Вам необходимо отправить имя файла как отдельную сущность (возможно, NSString или NSData) или, поскольку это изображение, вы можете добавить имя файла в данные EXIF, хотя это непросто.