如何得到文件的大小和类型?(50分)

  • 主题发起人 主题发起人 chemstar
  • 开始时间 开始时间
C

chemstar

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样根据一个文件名得到一个文件或文件夹的‘大小’和在本系统内对应的类型,如aaa.doc<br>文件应对应‘microsoft word 文档’,一个文件夹应对应“文件夹”,一个不知类型的文件<br>如aaa.cfg对应‘cfg文件’?
 
得到文件大小<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=311406<br>类型看注册表。
 
function myGetFileSize(const FileName: string): LongInt;<br>var<br>&nbsp; &nbsp;f : TSearchRec ;<br>begin<br>&nbsp; &nbsp; &nbsp;if FindFirst(FileName, faAnyFile, f) = 0 then<br>&nbsp; &nbsp; &nbsp; &nbsp; Result := f.Size<br>&nbsp; &nbsp; &nbsp;else<br>&nbsp; &nbsp; &nbsp; &nbsp; Result := 0;<br>&nbsp; &nbsp; &nbsp;SysUtils.FindClose(f) ; &nbsp; { de-allocates resources eaten by FindFirst }<br>end;<br>function &nbsp;fileTypeName(const aFile: String): String;<br>var<br>&nbsp; aInfo: TSHFileInfo;<br>begin<br>&nbsp; if SHGetFileInfo(PChar(aFile),0,aInfo,Sizeof(aInfo),SHGFI_TYPENAME)&lt;&gt;0 then<br>&nbsp; &nbsp; &nbsp;Result:=StrPas(aInfo.szTypeName)<br>&nbsp; else begin<br>&nbsp; &nbsp; &nbsp;Result:=ExtractFileExt(aFile);<br>&nbsp; &nbsp; &nbsp;Delete(Result,1,1);<br>&nbsp; &nbsp; &nbsp;Result:=strUpper(Result)+' File';<br>&nbsp; end;<br>end;
 
to yanghai0437, <br>1、 &nbsp;你的这一句:Result:=strUpper(Result)+' File';为什么老是通不过?<br> 提示:[Error] main.pas(721): Incompatible types: 'String' and 'PChar'<br>2、你的第二个函数只有当aFile为一个真实存在的文件时才能返回正确的值,而当为一个字<br> 符串时,如:aaa.doc,就只能返回doc了,而不是‘word 文档’?<br><br> 回答后立即给分!谢谢!
 
多人接受答案了。
 

Similar threads

后退
顶部