objective c - una - ¿La mejor forma de copiar o mover archivos con Objective-C?
pasos para eliminar un archivo (3)
Me preguntaba, ¿existe una mejor práctica para escribir un programa OSX que copie o mueva un archivo de un lugar a otro?
- ¿Hay algún método de NSSomething que pueda llamar?
- ¿Tengo que trabajar con flujos de entrada / salida?
- ¿O es la mejor manera tal vez simplemente confiar en pasar comandos al buscador?
Pregunta de bonificación: ¿Cómo puedo obtener porcentajes a la "copia 12% completa" con uno de estos métodos?
¡Gracias por tu ayuda!
NSFileManager y NSWorkspace tienen métodos para mover, copiar y eliminar archivos. Usualmente usaría NSFileManager ya que es más fácil trabajar con él:
if ( [[NSFileManager defaultManager] isReadableFileAtPath:source] )
[[NSFileManager defaultManager] copyItemAtURL:source toURL:destination error:nil];
Sin embargo, NSWorkspace puede mover fácilmente archivos a la Papelera, lo cual NSFileManager no puede hacer.
[[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:foldername destination:@"" files:filenamesArray tag:&tag];
Consulte la documentación para una descripción más completa de las dos clases. ( NSFileManager , NSWorkspace )
También puede usar la función FSCopyObjectAsync . Puede visualizar el progreso de copia de archivo y también puede cancelar la copia de archivo usando FSCopyObjectAsync ().
Echa un vistazo a esta post .
FSCopyObjectAsync está obsoleto en OS X v10.8
FSCopyObjectAsync es una alternativa para FSCopyObjectAsync. post hay un ejemplo de archivo de copia (3) con devolución de llamada de progreso.
[[NSFileManager defaultManager] copyItemAtPath:srcPath toPath:dstPath error:&error]
Aquí está el enlace a la referencia de clase: