这个问题在这里已有答案:
- 检查文件是真实的还是符号链接 6个答案
起源
答案:
符号链接,连接点和挂载点都是不同重新分析点的示例。但是,硬链接只是常规文件。在NTFS上,所有文件都是硬链接。您可以检测到文件有多个指向它的硬链接,但它没有指向的“真实文件”。您可以将硬链接视为同一文件的不同名称。
以下是有关从C#访问重新分析点的一些信息: http://www.codeproject.com/KB/vista/ReparsePointID.aspx?display=Print
以下是有关如何在C中执行此操作的一些信息: http://blog.kalmbach-software.de/2008/02/
答案:
符号链接,连接点和挂载点都是不同重新分析点的示例。但是,硬链接只是常规文件。在NTFS上,所有文件都是硬链接。您可以检测到文件有多个指向它的硬链接,但它没有指向的“真实文件”。您可以将硬链接视为同一文件的不同名称。
以下是有关从C#访问重新分析点的一些信息: http://www.codeproject.com/KB/vista/ReparsePointID.aspx?display=Print
以下是有关如何在C中执行此操作的一些信息: http://blog.kalmbach-software.de/2008/02/
硬链接:
您可以通过调用Win32 API函数来检测多个名称是否指向相同的“数据块”或“文件内容” GetFileInformationByHandle。返回的nNumberOfLinks成员 BY_HANDLE_FILE_INFORMATION 结构包含链接总数
装载点:
您可以使用迭代遍历卷上的所有挂载点 FindFirstVolumeMountPoint 和 FindNextVolumeMountPoint。也 FindVolumeMountPointClose 应该用来关闭搜索句柄。
来自.NET
从.NET执行此操作需要一些P / Invoke魔法
请看我的问题 NTFS Junctions,无法理解API。这是问题的重复。但我解释了如何使用C / C ++实现重分析点,挂载点,连接点和符号链接。盲目地......而不只是给API链接......