2016-04-01 23 views
3

Dosyayı bir klasöre indiriyorum ve dosyanın gerçekten orada olduğunu doğrularım, fakat yukarıdakileri alıyorum hata. Birisi bana bu dosyayı okumak için izinlerim olmadığını anlamaya yardımcı olabilir mi?“” dosya açılamadı çünkü görüntüleme izniniz yok

let documentsURL = NSSearchPathForDirectoriesInDomains 
      (.DocumentDirectory, .UserDomainMask, true)[0] 

    let checkValidation = NSFileManager.defaultManager() 

    if (checkValidation.fileExistsAtPath(documentsURL)) 
    { 
     print("FILE AVAILABLE"); 
    } 
    else 
    { 
     print("FILE NOT AVAILABLE"); 
    } 

    print(documentsURL) 

    do{ 
     let data = try String(contentsOfFile: documentsURL as String, 
      encoding: NSASCIIStringEncoding) 
     print(data) 

    } 
    catch let error { print(error) } 

Hata Alan = NSCocoaErrorDomain Kodu = 257 "Dosya‘Belgeler’bunu görüntüleme izni yok çünkü açılamadı." UserInfo = {NSFilePath =/var/mobile/Kapları/Veri/Uygulama/7FA4D6A9-2149-4053-BF08-22E94A00AE34/Belgeler, NSUnderlyingError = 0x137807200 {Hata Alan = NSPOSIXErrorDomain Kodu = 13 "İzin verilmedi"}}

+0

İlk önce bir String'e gönderdiğiniz URL'yi yazdırmayı düşünürüm, büyük olasılıkla NSURL ve String'i bu şekilde kullanmak iyi bir fikir değildir. Bunun yerine NSURL.relativePath kullanmayı düşünün. –

+0

@AntwanvanHoudt üzgünüm, ne yapmamı istediğini anlamadım mı? NSURL.relativePath'i nasıl kullanırım? Bu kod parçasının yanı sıra String olarak çalışmamın yanı sıra, – user3395936

+0

"documentsDirectoryURL.relativePath!" Sorunu olduğundan şüpheliyim. oyuncular yerine. –

cevap

3

BelgelerinizURUR, uygulamanızdaki Belgeler FOLDER adresidir.

/var/mobile/Kapları/Veri/Uygulama/7FA4D6A9-2149-4053-BF08-22E94A00AE34/Belgeler

Ben aynı problem vardı
+1

Peki neden bu kodu çalıştırdığımda 'if (checkValidation.fileExistsAtPath (documentsURL))' bu belgenin o yolda var olduğunu söylüyor? – user3395936

+0

@ user3395936 Bu API, 'true' çok sık döndürüyor. Yapmak istediğiniz şey, bu bir dizin olup olmadığını size söyleyecektir documentsURL.hasDirectoryPath'. Çocuk dosyalarını dizinde almak istiyorsanız, 'FileManager.default.contentsOfDirectory' ı kullanın (at: documentsURL, includePropertiesForKeys: nil, options: [])) ' –

0

: Size içeriğini alabileceğiniz bir DOSYA değildir. Belgeler klasörünüzde en az bir dosyaya sahip olmanız ve bu dosyayı yazdırmanız gerekiyor.

Hayal ediyorum

Sen elma onları geri almak mümkün olmayan belge klasörler ile karıştırmasını insanları istemiyor ve çünkü url sonunda bir dosya olması gerekir
var filename = self.getDocumentsDirectory().appendingPathComponent(local[i]) 

yazdı

İlgili konular