检测到象征性的链接、连接点,装载点和硬链接[重复]
-
21-09-2019 - |
题
这个问题已经有一个答案在这里:
- 检查,如果一文件是真的或象征性的链接 6的答案
任何人都不会知道如何检查,如果一个文件的目录或是任何一个 象征性的链接, 结点, 安装点 或 硬链接?
就我所知的一个象征性的链接检测到检查的文件时,其"ReparsePoint"的属性。交接点检测到通过检查一目录"ReparsePoint"的属性。因此,如果"ReparsePoint"的属性是设置一个文件,它必须是一个象征性的链接,否则,如果它是落在一个目录,它只能是一个联接点,对吧?
好的那么远,但我们仍然不知道如何检测"装入点"和"硬链接"。谁能告诉我如何做到这一点?
解决方案
象征性的链接、连接点,并装入点的所有例子的不同重新分析点。硬的链接,但是,只是普通的文件。在NTFS所有文件都是硬的链接。你可以检测到这一文件具有多难链接指向,但是,没有任何"真正的文件",这点。你能想到的硬的联系,只是不同的名称用于相同的文件。
这里的一些信息,访问重新分析点从C#: http://www.codeproject.com/KB/vista/ReparsePointID.aspx?display=Print
这里的一些信息关于如何做到这一点在C: http://blog.kalmbach-software.de/2008/02/
其他提示
硬链接:
你可以检测如果有多个名字都指向相同的"数据块"或"文件的内容",通过调用Win32API功能 GetFileInformationByHandle.该nNumberOfLinks的成员返回 BY_HANDLE_FILE_INFORMATION 结构中含有链接的总数
装点:
你可以迭代过所有的安装点上的一个积使用 FindFirstVolumeMountPoint 和 FindNextVolumeMountPoint.还 FindVolumeMountPointClose 应使用关闭的搜索处理。
从。净
这样做。净将需要一些P/调用魔法
请看看我的问题 NTFS交汇点,麻烦了解API.它是一种重复的问题。但我解释了所有有关如何重新分析点,挂载点、交汇点和象征性的链接实施,使用C/C++。而不是只给链接API,盲目的...