He encontrado esta manera de crear un directorio si no existe. Pero parece un poco inestable y me temo que esto puede salir mal en 1 de cada 1000 intentos.¿Existe alguna manera más segura de crear un directorio si no existe?
if(![[NSFileManager defaultManager] fileExistsAtPath:bundlePath]) {
[[NSFileManager defaultManager] createDirectoryAtPath:bundlePath withIntermediateDirectories:YES attributes:nil error:NULL];
}
Sólo existe este incómodo método fileExistsAtPath que también busca archivos y no solo directorios. Pero para mí, lo peligroso es: ¿y si esto sale mal? ¿Qué debo hacer? ¿Cuál es la mejor práctica para garantizar que el directorio se crea y solo se crea cuando no existe?
Sé que las operaciones del sistema de archivos nunca son seguras. El dispositivo podría perder energía de la batería de forma repentina justo en el momento en que comenzó a palear los bits de A a B. O puede tropezar con un bit malo y colgarse por un segundo. Tal vez en raras ocasiones devuelve SÍ incluso si no hay directorio. En pocas palabras: no confío en las operaciones del sistema de archivos.
¿Cómo puedo hacer esto completamente seguro?
¡Genial! ¿Qué debo hacer si ocurre un error? ¿Tiene sentido intentar e intentar nuevamente? (al menos algunas veces ... ¿y qué pasa si eso no ayuda?) – dontWatchMyProfile
No estoy seguro de qué hacer si hay un error. Depende de lo elegante que quieras obtener. Puede buscar errores específicos y manejarlos de manera diferente, o tratar de crear una ruta diferente. Quizás dejar que el usuario elija uno diferente? –
Necesita verificar el valor de retorno, no el puntero de error – Sven