Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

421
Views
FileManager.default.fileExists dice que el directorio de documentos no existe

FileManager.default.contentsOfDirectory afirma que el directorio de documentos no existe, aunque claramente existe. Estoy usando Swift 4.2 en mi iPhone SE real con iOS 12.1.2

Estoy leyendo el contenido del directorio de downloads en mi aplicación usando lo siguiente:

 do { let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] let downloadedContents = try FileManager.default.contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil) print(downloadedContents) } catch { print("Error while enumerating contents: \(error.localizedDescription)") }

Esto imprime lo siguiente, diciéndome que existe un archivo en el directorio de documentos:

 [file:///private/var/mobile/Containers/Data/Application/698F8D51-92AF-4BAB-A212-0A0982090550/Documents/example-file/]

(Moví el archivo allí desde el directorio de cachés después de descargar una compra desde la aplicación, pero no creo que sea relevante para esta pregunta).

Más adelante en mi código, quiero verificar si el archivo se descargó. Estoy usando lo siguiente:

 let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] let path = URL(fileURLWithPath: "example-file", relativeTo: documentsURL) var isDir : ObjCBool = false if FileManager.default.fileExists(atPath: path.standardizedFileURL.absoluteString, isDirectory: &isDir) { if isDir.boolValue { return true } else { return false // file exists but is not directory } } else { return false // file does not exist at all }

Pero esto siempre devuelve falso, aunque contentsOfDirectory mostró que existe.

Durante la depuración, también probé:

 let fileManager = FileManager.default let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0] po FileManager.default.fileExists(atPath: documentsURL.standardizedFileURL.absoluteString)

Pero esto también devuelve falso. Ahora estoy bastante seguro de que solo estoy usando los métodos fileExists incorrectamente.

¿Alguien puede detectar lo que estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Resulta que uno debería usar documentsURL.path , en lugar de cualquier tipo de URL.

La ruta comienza con /var/mobile... mientras que las URL comienzan con file:///var...

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!