0

在经典的 Asp 中,我们使用File.Type属性从注册表中获取与文件类型关联的友好名称(例如,“.txt”的“文本文档”)。通常替换旧 COM 对象的 FileInfo 类不会复制此功能,到目前为止,我在寻找替代品方面没有取得太大成功。

4

1 回答 1

1

我不知道 BCL 中的方法,但您可以轻松地从注册表中读取它:

using System;
using Microsoft.Win32;

class Program
{
    static void Main(string[] args)
    {

        string extension = ".txt";
        string nicename = "";

        using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(extension))
        {
            if (key != null)
            {
                string filetype = key.GetValue(null) as string;
                using (RegistryKey keyType = Registry.ClassesRoot.OpenSubKey(filetype))
                {
                    if (keyType != null)
                    {
                        nicename = keyType.GetValue(null) as string;
                    }
                }
            }
        }
        Console.WriteLine(nicename);

    }
}

但是,首选 Vladimir 提供的链接中使用的方法,因为它使用 API 接口。

于 2009-10-17T20:55:19.120 回答