Eliminar un archivo con solo un identificador

Digamos que tengo un identificador de archivo como resultado de WinAPI CreateFile. No se abrió con FILE_FLAG_DELETE_ON_CLOSE.

¿Hay alguna manera de eliminar el archivo que tiene solo el identificador, sin tener el nombre del archivo?

Muchas Gracias

preguntado el 22 de mayo de 12 a las 19:05

Probablemente pueda usar la información de esta pregunta para obtener un nombre de archivo para usar con DeleteFile -

3 Respuestas

Si utiliza Windows Vista o superior, SetFileInformationByHandle() le permitirá hacer esto configurando la clase de información FileDispositionInfo.

El resultado neto de esta operación será que el identificador ahora se marcará para eliminarlo al cerrar; cuando se cierre el último identificador del archivo, el archivo se eliminará.

Para versiones anteriores de Windows, NTDLL exporta NtSetInformationFile() que le permitirá hacer lo mismo.

contestado el 22 de mayo de 12 a las 19:05

No sé si puede eliminar específicamente el archivo basándose únicamente en el identificador, pero siempre puede usar el identificador para recuperar el nombre del archivo, como se describe en este artículo de MSDNy luego llame a DeleteFile().

contestado el 22 de mayo de 12 a las 19:05

Vista+ proporciona GetFinalPathNameByHandle () que se puede usar con VOLUME_NAME_DOS para consultar la ruta "DOS" que luego puede pasar a DeleteFile ().

contestado el 23 de mayo de 12 a las 03:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.