Не удается загрузить с NSData(contentsOfFile: путь к файлу) из файловой системы мобильного устройства или симулятора, но он работает из файловой системы OS X

Я загружаю ZIP-файл, содержащий XML-файл. Я распаковываю файл с помощью SSZipArchive и сохраняю его в изолированной программной среде приложения в каталоге / библиотеке.

Например:

/ Var / мобильный / Контейнеры / данных / Применение /0A0091C2-7BC5-484F-BDBB-B2ABF305BB09/

Полный абсолютный путь к файлу:

/var/mobile/Containers/Data/Application/0A0091C2-7BC5-484F-BDBB-B2ABF305BB09/Libary/bgb.xml

Проблема странная, потому что, если я изменю путь к файлу (как абсолютный путь) в симуляторе на мой каталог /Download/bgb.xml, я могу загрузить файл.

Вот мой код:

var filepath = IOOPs().getDirectoryPath().stringByAppendingString("/bgb.xml")
    if(NSFileManager.defaultManager().fileExistsAtPath(filepath)){ 
        print(" File xml existiert")
        var filedata : NSData
        if let tmpData = NSData(contentsOfFile: filepath){
         parser =   NSXMLParser(data: NSData(contentsOfFile: filepath)!)
        }
    }
    parser.delegate = self
    parser.parse()

fileExistsAtPath(file path) -> оценивает истинуNSData(contentsOfFile: filepath) -> оценивает Null/Nil

Проблема возникает только с пути с симулятора или мобильного телефона.

Вот код для скачивания и распаковки:

 let datei = NSData(contentsOfURL: NSURL(string: "http://www.gesetze-im-internet.de/bgb/xml.zip")!)! 

    print ( getDirectoryPath())
    print("bgb.zip")
    speicherGesetzAufMobilemEndgerät(getDirectoryPath().stringByAppendingString("/bgb.zip"), datei: datei  )
    unzipFile(getDirectoryPath().stringByAppendingString("/bgb.zip"), destinationPath: getDirectoryPath().stringByAppendingString("/bgb.xml") )



 func unzipFile(myZipFile: NSString, destinationPath : NSString){

    let unZipped = SSZipArchive.unzipFileAtPath(myZipFile as! String, toDestination: destinationPath as! String);}

1 ответ

Попробуйте создать NSURL из местного пути:

NSData(contentsOfURL: NSURL(fileURLWithPath: filePath))
Другие вопросы по тегам