如何在 C# 中检测 NTFS 挂载的文件夹?
题
曾几何时,我读到如何以编程方式检测已安装的 NTFS 文件夹(在搜索文件夹时可能会导致循环递归)。现在我找不到链接了..有谁知道如何做到这一点?
我有兴趣检测的安装是一个文件夹安装到另一个文件夹时的情况。
解决方案
我想你说的是 NTFS交接?有一个非托管API 得到重新分析点,这你就必须诘以看看它实际上是一个结。这是所有可以通过P /调用,当然。
但是,大多数人只是(1)寻找 ReparsePoint 属性一个上>以 DirectoryInfo.GetDirectories 返回。
(1)注意,NTFS连接点是一个的特定类型的重分析点,但不是唯一的一个。符号链接,<击>硬链接,击>(2)和任何其它用户定义的数据也重新分析点。
(2)糟糕。硬链接并不重分析点,他们指着只是标准的目录条目同一文件。由于鲁本指正上。
其他提示
通过 WMI 执行此操作。请参阅示例: http://msdn.microsoft.com/en-us/library/aa393244(VS.85).aspx
或者尝试使用以下代码制作的示例代码 WMI 代码创建器:
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_DiskPartition");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_DiskPartition instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("Type: {0}", queryObj["Type"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}
不隶属于 StackOverflow