Estoy intentando transferir algún código de Linux a Windows. Realmente no sé mucho sobre Windows, así que estoy volando a ciegas. El código en cuestión intenta eliminar algunos directorios usando org.apache.commons.io.FileUtils¿Por qué este código está muriendo en Windows?
// If the mergesegs worked, delete the segment dirs
for (File file : segments.listFiles())
{
if (!file.equals(mergedSegFile))
{
LOG.debug("deleting segment dir " + file);
FileUtils.deleteDirectory(file);
}
}
segments
es un archivo, como suele mergedSegFile
. Muere con una IOException "Unable to delete file: c:\www\tomcat\crawls\test\TestingCode.site\crawldir\segments\20101128194700\parse_test\part-00000\data"
.
Estos archivos fueron creados por una ejecución previa del mismo programa (que hace un poco de rastreo de Nutch). Hacer una ls -l
bajo Cygwin muestra al usuario y de grupo son correctas, pero las ondulaciones permanentes son 000.
Más información:
dir
no me dice nada acerca de los permisos.- Puedo eliminar el directorio con
del
en una ventana de cmd.exe orm -rf
en una ventana de cygwin bash. - Los archivos en cuestión y el directorio en el que se encuentran se crearon anteriormente en la misma ejecución del mismo programa.
- La computadora está ejecutando Windows 7, así que supongo que eso significa que es NTFS.
¿Tal vez el programa que intenta eliminar el directorio, lo usa o los archivos en él? Extraiga el código que elimina el directorio y crea un código de prueba pequeño, que toma el directorio como un argumento de línea de comandos y lo elimina. ¿Funciona? – khachik
¿Tal vez obtenga más información en StackTrace of the Exception? – keuleJ