Quiero que el usuario seleccione cualquier archivo presente en su iPhone para que se use como un archivo adjunto de correo electrónico. Para este propósito, quiero mostrar la lista de todos los archivos y carpetas presentes en el iPhone. ¿Pero cómo obtendría la lista de esos archivos? ¿Hay alguna forma de obtener esa lista?¿Cómo enumerar todas las carpetas y sus subdirectorios/archivos en el SDK de iPhone?
Respuesta
Tenga en cuenta que su aplicación se ejecuta en un entorno limitado y no podría obtener ninguna carpeta/archivo fuera de ese entorno limitado.
ObjectiveC
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager contentsOfDirectoryAtPath:documentsDirectory error:nil];
for (NSString *s in fileList){
NSLog(@"%@", s);
}
Swift 4
guard let documentsDirectory = try? FileManager().url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) else { return }
guard let fileEnumerator = FileManager.default.enumerator(at: documentsDirectory, includingPropertiesForKeys: nil, options: FileManager.DirectoryEnumerationOptions()) else { return }
while let file = fileEnumerator.nextObject() {
print(file)
}
Ésta es la más lenta de aproximación (?):
NSFileManager * fileManager = [NSFileManager new];
NSArray * subpaths = [fileManager subpathsAtPath:path];
pero que debería al menos que apuntan a una mayor impl especializado ementación para sus necesidades.
Las abstracciones de nivel ligeramente inferiores que le permiten enumerar a pedido incluyen NSDirectoryEnumerator
y CFURLEnumerator
. Dependiendo de la profundidad del directorio, estos tienen el potencial de guardar muchas interacciones innecesarias con el sistema de archivos, en comparación con -[NSFileManager subpathsAtPath:]
.
¿Puede mencionar el valor de la variable "ruta" en la segunda línea? –
@Muhammed Bueno, no tiene acceso a ningún archivo en ninguna parte del sistema de archivos porque es un espacio aislado.* Tienes * acceso a los datos locales de tu aplicación: el 'documentsDirectory' de simpleBob demuestra cómo obtendrás esa ruta. – justin
Gracias por su respuesta, una pequeña confusión. ¿Qué pasa si mis archivos están presentes en la carpeta de fotos de iPhone? ¿Tengo acceso a él? Quiero decir que puedo listar todos los archivos presentes en la carpeta de fotos. –
Puede utilizar NSDirectoryEnumerator
través NSFileManager.enumeratorAtPath
A partir de los documentos:
NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"];
NSFileManager *localFileManager=[[NSFileManager alloc] init];
NSDirectoryEnumerator *dirEnum =
[localFileManager enumeratorAtPath:docsDir];
NSString *file;
while ((file = [dirEnum nextObject])) {
if ([[file pathExtension] isEqualToString: @"doc"]) {
// process the document
[self scanDocument: [docsDir stringByAppendingPathComponent:file]];
}
}
Soy un autor de FileExplorer de control que es un explorador de archivos para iOS y cumple con la mayoría de sus necesidades. Tenga en cuenta que le permite explorar solo aquellos archivos y directorios que se colocan dentro de su sandbox.
Estas son algunas de las características de mi control:
- Posibilidad de elegir los archivos y/o directorios si hay una necesidad de que
- Posibilidad de eliminar los archivos y/o directorios si hay una Necesidad de eso
- Función de búsqueda incorporada
- Ver archivos de audio, video, imagen y PDF.
- Posibilidad de agregar compatibilidad con cualquier tipo de archivo.
Puede encontrar mi control here.
rápida 3
let fileManager:FileManager = FileManager()
let files = fileManager.enumerator(atPath: NSHomeDirectory())
while let file = files?.nextObject() {
print("Files::",file)
}
- 1. Cómo enumerar las carpetas vacías en Linux
- 2. Obtenga todas las carpetas de TFS usando TFS SDK
- 3. Cómo enumerar todas las carpetas y archivos en el directorio después de conectar a través de sftp en python
- 4. Archivo por lotes para enumerar todas las carpetas en un directorio y salida a txt con
- 5. ¿Cómo enumerar todas las etiquetas de Git?
- 6. Cómo enumerar todas las propiedades de clase
- 7. Posible enumerar todas las clases PHP y sus métodos y propiedades?
- 8. Listar todas las carpetas en el directorio
- 9. ¿Cómo enumerar todas las variables de entorno en Vim?
- 10. Enumeración de carpetas y archivos usando Google Drive SDK V2
- 11. ICMP y el iPhone SDK
- 12. Cómo enumerar todas las variables de entorno en Java
- 13. ¿Cómo enumerar todas las funciones en un módulo de Python?
- 14. C#: enumerar todas las clases en el ensamblaje
- 15. ¿Cómo enumero todas las propiedades en un objeto y obtengo sus valores?
- 16. aws sdk php para listar carpetas s3
- 17. ¿Cómo copiar archivos desde el árbol de carpetas dejando caer todas las carpetas con Robocopy?
- 18. ¿Cómo enumerar todas las interfaces de red disponibles?
- 19. ¿Cómo enumerar todas las propiedades de un objeto Powershell?
- 20. ¿Cómo puedo enumerar solo las carpetas en el archivo zip en Python?
- 21. Enumerar todas las fuentes de datos y sus dependencias (informes, elementos, etc.) en SQL Server 2008 R2
- 22. ¿Cómo enumerar todas las propiedades de dependencia del control?
- 23. ¿Cómo enumerar todas las ventanas dentro de un proceso?
- 24. PHP cómo enumerar todas las funciones públicas de la clase
- 25. Cómo enumerar todas las variables de enlace con GroovyShell
- 26. Cómo hacer git-pull en todas las carpetas menos una
- 27. ¿Cómo puedo enumerar todas las columnas de una tabla?
- 28. PHP opendir() para enumerar carpetas solo
- 29. ¿Cómo puedo enumerar/enumerar todas las aplicaciones instaladas en Windows XP?
- 30. ¿Cómo puedo enumerar todas las propiedades del objeto Math?
Pero por ejemplo tengo archivo .pdf presente en algún lugar del disco duro del iPhone y quiero para localizar el archivo o si desea obtener la ruta de ese archivo que ... ?? ? –
No todos los archivos se almacenan en la zona de pruebas de la aplicación. Puede decirle al sistema que su aplicación es compatible con PDF y permitir que otras aplicaciones envíen archivos PDF de su aplicación. No hay otra manera de hacerlo. – rckoenes