曾几何时,我读到如何以编程方式检测已安装的 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);
            }
        }
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top