iphone - Retrieving a filename for an ALAsset -


how can filename extracted alasset?

is there way via url or other way?

update: yeonsh notes below, ios 5.0 there better way. answer relevant ios < 5.0.

you can extract url alasset, filenames same, on form

assets-library://asset/asset.jpg?id=1000000001&ext=jpg

if reason need different file names, try making internal-external paradigm:

#import <foundation/foundation.h>  @interface nsurl (nsurl_asset)  - (nsurl*) toexternalform; - (nsurl*) fromexternalform; - (nsstring*) toexternalfilename;      @end  #import "nsurl+asset.h" #import "urlparser.h" // http://iphone.demay-fr.net/2010/04/parsing-url-parameters-in-a-nsstring/  static nsstring *const external_token = @"/assetexternalform/";  @implementation nsurl (nsurl_asset)  // assets-library://asset/asset.jpg/assetexternalform/1000000001.jpg -> assets-library://asset/asset.jpg?id=1000000001&ext=jpg - (nsurl*) fromexternalform {     if([self.scheme isequaltostring:@"assets-library"]) {         nsrange slash = [self.absolutestring rangeofstring:external_token options:nsbackwardssearch];         if(slash.location != nsnotfound) {              nsrange dot = [self.absolutestring rangeofstring:@"." options:nsbackwardssearch];              if(dot.location != nsnotfound) {                 nsstring* extention = [self.absolutestring substringfromindex:(dot.location + dot.length)];                 nsstring* identifier = [self.absolutestring substringwithrange:nsmakerange(slash.location + slash.length, dot.location - (slash.location + slash.length))];                  return [nsurl urlwithstring:[nsstring stringwithformat:@"%@?id=%@&ext=%@", [self.absolutestring substringtoindex:slash.location], identifier, extention]];             }         }     }     return self; }  // assets-library://asset/asset.jpg?id=1000000001&ext=jpg -> assets-library://asset/asset.jpg/assetexternalform/1000000001.jpg - (nsurl*) toexternalform {     if([self.scheme isequaltostring:@"assets-library"]) {         nsrange range = [self.absolutestring rangeofstring:@"?"];         if(range.location != nsnotfound) {             urlparser *parser = [[[urlparser alloc] initwithurlstring:self.absolutestring] autorelease];              nsstring* extention = [parser valueforvariable:@"ext"];             nsstring* identifier = [parser valueforvariable:@"id"];              if(extention != null && identifier != null) {                 return [nsurl urlwithstring:[nsstring stringwithformat:@"%@%@%@.%@", [self.absolutestring substringtoindex:range.location], external_token, identifier, extention]];             }         }     }     return self; }  // assets-library://asset/asset.jpg?id=1000000001&ext=jpg -> 1000000001.jpg - (nsstring*) toexternalfilename {     if([self.scheme isequaltostring:@"assets-library"]) {         nsrange range = [self.absolutestring rangeofstring:@"?"];         if(range.location != nsnotfound) {             urlparser *parser = [[[urlparser alloc] initwithurlstring:self.absolutestring] autorelease];              nsstring* extention = [parser valueforvariable:@"ext"];             nsstring* identifier = [parser valueforvariable:@"id"];              if(extention != null && identifier != null) {                 return [nsstring stringwithformat:@"%@.%@", identifier, extention];             }         }     }     return null; }  @end 

note not need filename read content of alasset. use alasset.defaultrepresentation.getbytes method that.


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -