是否有人知道如何检查一个文件或目录是符号链接、连接点、挂载点还是硬链接?
据我所知,通过检查文件中的"ReparsePoint“属性可以检测到符号链接。通过检查目录中的"ReparsePoint“属性来检测连接点。因此,如果"ReparsePoint“属性是在文件上设置的,那么它必须是一个符号链接,否则如果它设置在目录上,那么它只能是一个连接point...right?
到目前为止还不错,但我仍然不知道如何检测“点”和“硬链接”。有人能告诉我怎么做吗?
发布于 2010-03-21 13:42:53
符号链接、连接点和安装点都是不同的应答点的例子。然而,硬链接只是普通的文件。在NTFS上,所有文件都是硬链接。您可以检测到一个文件有多个指向它的硬链接,但是它没有指向“真正的文件”。您可以将硬链接看作同一个文件的不同名称。
下面是从C#:http://www.codeproject.com/KB/vista/ReparsePointID.aspx?display=Print访问修复点的一些信息
下面是一些关于如何在C:http://blog.kalmbach-software.de/2008/02/中执行此操作的信息
发布于 2011-02-21 14:53:51
硬链接:
您可以通过调用Win32 API函数GetFileInformationByHandle来检测多个名称是否指向相同的“数据块”或“文件内容”。返回的nNumberOfLinks结构的信息成员包含链接的总数。
安装点:
您可以使用FindFirstVolumeMountPoint和FindNextVolumeMountPoint迭代卷上的所有挂载点。另外,应该使用FindVolumeMountPointClose关闭搜索句柄。
来自.NET
从.NET执行此操作将需要一些P/Invoke魔术
发布于 2011-03-01 18:18:55
请看我的问题NTFS连接,无法理解API。这是一个重复的问题。但是,我解释了如何使用C/C++实现应答点、挂载点、连接点和符号链接。不只是提供API的链接,盲目的.
https://stackoverflow.com/questions/2487237
复制相似问题