如:
当没有安装Word时,DOC文件的描述为“DOC文件”,当安装了WORD时,其描述为“Microsoft Word 文档”;
再如:
MP3文件在Windows2000和XP中默认的描述不相同,一个是“MP3音乐文件”,一个是“MP3音频文件(MP3)”;这说明当关联的程序不同以及操作系统不同时,某一类型的文件描述也不相同。在ASP中的脚本语言中用FileSystemObject对象的File对象的Type属性即可获得,但在Delphi中有没有办法呢?

解决方案 »

  1.   

    Describes file.UnitQFileCtrlsCategoryfile controlsDelphi syntax:function GetFileType(Info: PFileInfo): string;C++ syntax:extern PACKAGE AnsiString __fastcall GetFileType(Qtypes::PFileInfo Info);DescriptionGetFileType returns a short descriptive string for the file indicated by Info.
      

  2.   

    这个我试了,什么也得不到。也不知用得对不对,PFileInfo中的ImageIndex、Desc到底是什么意思?在什么地方用?能否给出具体例子?
      

  3.   

    uses Registry;function GetFileInfo(const FileName: string): string;
    var
      S: string;
    begin
      Result := '';
      S := ExtractFileExt(FileName);
      with TRegistry.Create do
      try
        RootKey := HKEY_CLASSES_ROOT;
        if OpenKey(S, False) then
        try
          S := ReadString(''); // read default value
          CloseKey;
          if OpenKey(S, False) then
            Result := ReadString(''); // read default value
        finally
          CloseKey;
        end;
      finally
        Free
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Caption := GetFileInfo('a:\a.doc');
    end;
      

  4.   

    问题已解决。唉,这年头,问了几天也没有人回答,最后还是自己从API里翻出来了,原来是经常用的SHGetFileInfo函数,真不知道到还有这个的参数!
    --------------------------------------------------
    ...
     Uses
         ... , ShellAPI , ...
    ... Function GetFileTypeName(FileName:String):String;
     var
       FileInfo: TSHFileInfo;
       TypeName :String;
     begin
       TypeName:='未知类型';
       Try
         SHGetFileInfo(PChar(FileName),0,FileInfo,SizeOf(FileInfo),SHGFI_TYPENAME);
         TypeName := FileInfo.szTypeName;
       Finally
         GetFileTypeName:=TypeName;
       end;
     end;
    ...
    --------------------------------------------------不知道分能不能加给自己?!
      

  5.   

    既然如此,那就顺便再问一个问题:在ASP中的Server对象有几个方法:
    Server.HTMLEncode
    Server.URLEncode
    Server.URLPathEncode请问在DELPHI中如何实现?