¿Cómo puedo distinguir los enlaces duros programación de los archivos reales en Windows 7?

StackOverflow https://stackoverflow.com/questions/3636820

  •  30-09-2019
  •  | 
  •  

Pregunta

Tengo una diferencia entre el tamaño de los archivos y el espacio de disco utilizado (tamaño total del archivo es aún más que el tamaño del disco). Supongo que porque hay muchos enlaces duros existen (a componentes WinSxS) en Windows 7 / Vista. Pero ¿cómo puedo distinguir los enlaces duros programación de los archivos reales en Windows 7?

¿Fue útil?

Solución

No se puede, porque todos los archivos son enlaces duros. No realmente. Un archivo es sólo un enlace duro a un fragmento de datos - una lista en un directorio. (Tal vez usted enlaces simbólicos medias? Usted puede distinguir a aquellos ...)

Utilice los métodos incorporados de Windows proporciona para el cálculo de espacio utilizado en su lugar.

EDIT: Referencia (énfasis mina)

  

El enlace en sí es sólo una entrada de directorio , y no tiene un descriptor de seguridad. Por lo tanto, cuando se cambia el descriptor de seguridad de un enlace duro, un cambio que el descriptor de seguridad del archivo subyacente, y todos los enlaces duros ese punto en el fichero de permitir el acceso de nueva especificado.

Otros consejos

no puede distinguir los enlaces duros de archivos "reales". La entrada de directorio para un "archivo real" es un eslabón más duro. Tal vez usted significó un enlace simbólico.

POSIX tiene una función stat (llamado _stat en Windows) que puede detectar múltiples enlaces a un mismo archivo, los cuales tendrán el mismo número "i-nodo".

GetFileInformationByHandle () y compruebe el BY_HANDLE_FILE_INFORMATION nNumberOfLinks miembro regresado para un valor> 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top