以前用VB6时是这样读文件类型的File.type,但是现在C#的File和FileInfo缺读不出文件类型?读出来的样子应该是
“JPEG 图像” 
“数据库文件”
“文本文档” 
“HTML Document” 也就是在Windows操作系统中,资源管理器[查看]用详细显示,所看到的类型是一致的。

解决方案 »

  1.   

    我记得可以,一样的有文件类型,具体怎么搞不记得了.你去MSDN找找.好像是.GetType
      

  2.   

    你想要的是什么啊,如果只要扩展名的话用
    FileInfo.Extension就行了
      

  3.   

    string fileName = @"C:\mydir.old\myfile.ext";
    string path = @"C:\mydir.old\";
    string extension;extension = Path.GetExtension(fileName);
    Console.WriteLine("GetExtension('{0}') returns '{1}'", 
        fileName, extension);extension = Path.GetExtension(path);
    Console.WriteLine("GetExtension('{0}') returns '{1}'", 
        path, extension);
      

  4.   

    http://jhtchina.cnblogs.com/articles/93412.html
      

  5.   

    这个你得去读注册表,根据扩展名字找到,÷默认数据,根据这个数据找显示的名称,比如
    .htm找到默认值htmlfile,根据htmlfile找到HTML Document
    HKEY_CLASSES_ROOT\.htm
    HKEY_CLASSES_ROOT\htmlfile
      

  6.   

    你们说的都不说的都不对,只有“net_lover(孟子E章)”明白了我的意思。我不是要扩展名(这个很容易),举例说:一个名叫“index.html”的文件,我想得到他的类型是“HTML Document”(也就是在资源管理器里详细列表里看见的文件类型是一样的),而不是它的扩展名“html”,这个在ASP里很容易的,就是一个简单的方法,而在C#,我到现在也没有找到,难道非得调用注册表吗?请各位高手帮我解决一下吧!
      

  7.   

    ContentType这一个可以取得文件的类型
    你在MSDN上查一下就知道哦,在SYSTEM.IO.PATH类里
      

  8.   

    string ext = ".jpeg"; // .jpeg, .html, .aspx, etc..
    string desc = (string)Registry.ClassesRoot.OpenSubKey(ext).GetValue(null);
    string typeinfo = (string)Registry.ClassesRoot.OpenSubKey(desc).GetValue(null);
    Console.WriteLine(typeinfo);
      

  9.   

    用API的SHGetFileInfo函数,设置ShellFileInfoFlags为SHGFI_TYPENAME
    返回SHFILEINFO中的szTypeName 即是了.
    不提供源代码了,对你有好处的.附加说明:
    [StructLayout(LayoutKind.Sequential)]
    internal struct SHFILEINFO
    {
    internal IntPtr hIcon;
    internal IntPtr iIcon;
    internal uint dwAttributes;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
    public string szDisplayName;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
    public string szTypeName;
    }; SHGFI_ICON              = 0x000000100,
    SHGFI_DISPLAYNAME       = 0x000000200,     
    SHGFI_TYPENAME          = 0x000000400,    
    SHGFI_ATTRIBUTES        = 0x000000800,   
    SHGFI_ICONLOCATION      = 0x000001000,     
    SHGFI_EXETYPE           = 0x000002000,     
    SHGFI_SYSICONINDEX      = 0x000004000,    
    SHGFI_LINKOVERLAY       = 0x000008000,     
    SHGFI_SELECTED          = 0x000010000,     
    SHGFI_ATTR_SPECIFIED    = 0x000020000,     
    SHGFI_LARGEICON         = 0x000000000,     
    SHGFI_SMALLICON         = 0x000000001,     
    SHGFI_OPENICON          = 0x000000002,     
    SHGFI_SHELLICONSIZE     = 0x000000004,     
    SHGFI_PIDL              = 0x000000008,     
    SHGFI_USEFILEATTRIBUTES = 0x000000010
      

  10.   

    string ext = file.Extension, desc, typeinfo = null;
    if (ext != "")
    {
        bool descExists = false;
        RegistryKey extKey = Registry.ClassesRoot.OpenSubKey(ext);
        if (extKey != null)
        {
            desc = extKey.GetValue(null) as string;
            if (desc != null)
            {
                RegistryKey descKey = Registry.ClassesRoot.OpenSubKey(desc);
                if (descKey != null)
                {
                    typeinfo = descKey.GetValue(null) as string;
                    descExists = true;
                }
            }
        }
        if (!descExists)
        {
            typeinfo = ext.Substring(1).ToUpper() + " File";
        }
    }
    return typeinfo;
      

  11.   

    还有一个方法就是把整个文件名读出来,然后Split,取数组最后一个元素