这个问题已经有一个答案在这里:

任何人都不会知道如何检查,如果一个文件的目录或是任何一个 象征性的链接, 结点, 安装点硬链接?

就我所知的一个象征性的链接检测到检查的文件时,其"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 结构中含有链接的总数

装点:

你可以迭代过所有的安装点上的一个积使用 FindFirstVolumeMountPointFindNextVolumeMountPoint.还 FindVolumeMountPointClose 应使用关闭的搜索处理。

从。净

这样做。净将需要一些P/调用魔法

请看看我的问题 NTFS交汇点,麻烦了解API.它是一种重复的问题。但我解释了所有有关如何重新分析点,挂载点、交汇点和象征性的链接实施,使用C/C++。而不是只给链接API,盲目的...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top