¿Por qué son los archivos borrados por Files.move () cuando se lanza una AccessDeniedException?

el mal:

Esta es sólo la intención como una cuestión conceptual. Estoy usando Files.move()la StandardCopyOption.ATOMIC_MOVEopción. Pensé que sería más seguro, pero resultó que los archivos se eliminan cuando se lanza una AccessDeniedException.

Cualquier alrededor de trabajo o explicación es apreciado.

El código es muy simple:

Files.move(netDirJobs.toPath(), archiveJobs.toPath(),StandardCopyOption.ATOMIC_MOVE);

OS: Win7 Profesional SP1

@MarkJeronimus:

netDirLog.toPath().getFileSystem().provider()  = sun.nio.fs.WindowsFileSystemProvider@5dac9e07
archiveLog.toPath().getFileSystem().provider() = sun.nio.fs.WindowsFileSystemProvider@5dac9e07

Jup mismo objeto

el mal:

Hola chicos, gracias por el esfuerzo.

En primer lugar alguna información adicional: Estoy moviendo los datos dos veces, primero desde la fuente hasta un temporal y luego hasta el destino final.

El mensaje de error confundir a mí pensar que era un problema de Files.move (). Pero lo que realmente sucede es que trasladó los archivos correctamente en el directorio temporal que luego, por supuesto, que se borraron por ser sólo temporal. Quité el comando de borrado de salida para el directorio temporal y ahora si el movimiento del directorio temporal al destino falla, todavía se guarda en el temporal como era mi intención.

Lo siento por la pregunta innecesaria.

Y especiales gracias a Mark Jeronimus para mirar en él incluso después de 4 días han pasado.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=195738&siteId=1
Recomendado
Clasificación