temporales subcarpetas para nombres largos eliminar con comando carpetas carpeta borrar archivos windows winapi file-io

windows - subcarpetas - ¿Cómo eliminar una carpeta cuyo nombre terminó con un punto(".")?



eliminar archivos temporales cmd (8)

Obtuve algunas carpetas creadas por malware cuyo nombre terminó con un punto como C:/a./ O C:/b./ , Etc.

Encontré una solución que puede eliminar dicha carpeta con el comando rd /q /s "C:/a./" Pero si llamo a Win API RemoveDirectory , devuelve ERROR_FILE_NOT_FOUND .

Y me pregunto cómo escribir una función para eliminar dicho directorio, gracias

Pruebo en mi propio sistema Windows XP SP3 como este

crea una carpeta C:/>mkdir a../// y no puedo hacer doble clic para acceder a esta carpeta. y puedo eliminar con el comando rd /q /s "C:/a./"

¿A qué API de sistema (s) de Windows llama ese comando rd /q /s ?


Cuando vea que el nombre es "a.", Pero el nombre real es "a ..."

Prueba esto:

rd /q /s "C:/a../"

Y puedes intentar explorar la carpeta con este código:

for /f "tokens=3 delims=<>" %%a in (''dir /ad /x "C:/*" ^| findstr " a/./.$"'') do ( for /f "tokens=1" %%b in ("%%a") do start "" "%%~fb" )


He publicado esto en SU ​​y decidí publicarlo aquí también. Es la manera más simple, rápida y fácil de lograr esto. Ahora me estoy riendo de lo simple que es.

  1. Instalar WinRAR
  2. Siga el procedimiento paso a paso de las imágenes:

Yo mismo instalé WinRaR, así que decidí demostrar la solución.
Esta solución alternativa también es posible utilizando 7zip.

Otra cosa que debo mencionar es que, como parece que el problema está causado por el uso de Windows Explorer y cualquier otro explorador de archivos (como el explorador de archivos winrar en sí, exploradores de FTP, etc.) tratará estos archivos como de costumbre.
¡Podría intentar usar cualquier buscador de archivos y simplemente eliminar esos archivos y no molestarse en archivarlos! ¡Aclamaciones!


Intente utilizar el programa de unlocker para eliminar archivos y carpetas que no puede eliminar normalmente.


Si tiene instalado git (puede obtener ir desde here ), entonces es tan simple como:

  1. Navegue a la ubicación donde se encuentra la carpeta problemática.
  2. Menú contextual (botón derecho del mouse)> Git Bash aquí.
  3. rm -rf Foldername./

Utilice el comando bash rm de Ubuntu en Windows 10



WinRAR " WinRAR " Un simple procesador RAR, ZIP. Puede usar cualquier tipo de editor de nombre de archivo. Simplemente abra el directorio donde se encuentra su archivo en WinRar y seleccione renombrar luego de hacer clic con el botón derecho en el archivo / carpeta que desea cambiar de nombre y completar el nuevo nombre.


Solución: cuando llame a RemoveDirectory, asegúrese de que prefija la ruta con la cadena " //?/ ".


Explicación: Tiene todo que ver con el punto. Según MSDN, hay ciertos casos en los que es posible que no pueda eliminar un archivo o carpeta en un volumen NTFS, específicamente cuando el nombre del archivo no es válido en el espacio de nombre de Win32 (razón por la cual no puede abrir el archivo utilizando el métodos normales en Windows Explorer).

Es posible que no pueda eliminar un archivo si el nombre del archivo incluye un nombre no válido (por ejemplo, el nombre del archivo tiene un espacio final o un período posterior o el nombre del archivo está compuesto únicamente por un espacio). Para resolver este problema, use una herramienta que use la sintaxis interna apropiada para eliminar el archivo. Puede usar la sintaxis "//? /" Con algunas herramientas para operar en estos archivos, por ejemplo:
del "//? / c: / path_to_file_that contains a trailing space.txt"
La causa de este problema es similar a Causa 4. Sin embargo, si utiliza la sintaxis típica de Win32 para abrir un archivo que tiene espacios finales o períodos finales en su nombre, los espacios o períodos finales se eliminan antes de que se abra el archivo real. Por lo tanto, si tiene dos archivos en la misma carpeta llamada "AFile.txt" y "AFile.txt" (tenga en cuenta el espacio después del nombre del archivo), si intenta abrir el segundo archivo mediante el uso de llamadas estándar a Win32, abra el primer archivo en su lugar. Del mismo modo, si tiene un archivo cuyo nombre es simplemente "" (un carácter de espacio) e intenta abrirlo mediante el uso de llamadas estándar de Win32, en su lugar, abre la carpeta principal del archivo. En esta situación, si intenta cambiar la configuración de seguridad en estos archivos, es posible que no pueda hacerlo o inesperadamente puede cambiar la configuración en diferentes archivos. Si se produce este comportamiento, puede pensar que tiene permiso para un archivo que realmente tiene una ACL restrictiva.

(Fuente: http://support.microsoft.com/?kbid=320081 )