iPhone - NSData from local file's URL

前端 未结 5 1392
说谎
说谎 2021-01-30 19:39

I have a NSURL object which gives me the path of a local file (in documents folder). I want to populate an NSData object with the contents of this file

相关标签:
5条回答
  • 2021-01-30 19:51
    guard let data = FileManager.default.contents(atPath: path) else
        { ...
    
    0 讨论(0)
  • 2021-01-30 19:55
    // Given some file path URL: NSURL *pathURL
    // Note: [pathURL isFileURL] must return YES
    NSString *path = [pathURL path];
    NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
    

    Swift code:

    let data = FileManager.default.contents(atPath: path)
    
    0 讨论(0)
  • 2021-01-30 19:59

    To get this work you just need to do:

    NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"search" withExtension:@"png"];
    NSString*stringPath = [imgPath absoluteString]; //this is correct  
    
    //you can again use it in NSURL eg if you have async loading images and your mechanism 
    //uses only url like mine (but sometimes i need local files to load)
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringPath]];
    UIImage *ready = [[[UIImage alloc] initWithData:data] autorelease];
    
    0 讨论(0)
  • 2021-01-30 20:00

    For swift3 I found answer from following URL helpful

    ( I was getting following path , after capturing image using phonegap plugin

    file:///var/mobile/Containers/Data/Application/B64B06DE-7976-45CF-9BE2-661F0F309A06/tmp/abcded.jpg )

    https://stackoverflow.com/a/41043447/6383908

    if let videoURL = URL(string: urlString), let videodata = try? Data(contentsOf: videoURL) { //Add code of Alamofire here }

    0 讨论(0)
  • 2021-01-30 20:10

    Make sure your local URL starts with "file://" then you would just have to do this:

     NSData *fileData = [NSData dataWithContentsOfFile:fileURL.path];
    
    0 讨论(0)
提交回复
热议问题