2010-09-01 18 views
7

Hay CreateHardLink función para crear enlaces duros. (Desde Win2000)
Y existe la función CreateSymbolicLink ya que Vista ha sido liberado.¿Cómo crear un punto de unión con WinApi?

¿Pero por qué no hay un CreateJunction?

¿Cómo hace un cruce mklink?
¿Y cómo puedo escribir códigos para hacer uniones en mi aplicación?

Respuesta

6

Son puntos de reanálisis, por lo que FSCTL_SET_REPARSE_POINT es la FSCTL mágica. He aquí un ejemplo, nunca había probado, pero parece correcto:

http://www.flexhex.com/docs/articles/hard-links.phtml

-Scott

+0

Tenga en cuenta que, a partir de Windows Vista/Server 2008, también se puede usar la función [CreateSymbolicLink] (http://msdn.microsoft.com/en-us/library/aa363866.aspx). – efotinis

3

No tenemos una función de una sola función para la creación de uniones como lo hay para los enlaces simbólicos o enlaces duros. Como dijo Snoone, es un punto de reanálisis, por lo que debes usar DeviceIoControl para interactuar con él. Si mal no recuerdo, la fuente que él vinculó es la misma fuente con la que jugué cuando estaba tratando de resolver esto, y no creo que me encontré con ningún problema.

Alternativamente, si no está en contra de usar una biblioteca externa en su aplicación, y va a necesitar funcionalidad para leer/revisar/eliminar uniones, es posible que desee consultar reparselib, que es una biblioteca bastante decente envolver uniones, enlaces simbólicos, puntos de montaje y puntos de análisis personalizados.

Cuestiones relacionadas