//判断文件是否存在 FileExists
//判断文件夹是否存在 DirectoryExists
//删除文件 DeleteFile; Windows.DeleteFile
//删除文件夹 RemoveDir; RemoveDirectory
//获取当前文件夹 GetCurrentDir
//设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory
//获取指定驱动器的当前路径名 GetDir
//文件改名 RenameFile
//建立文件夹 CreateDir; CreateDirectory; ForceDirectories
//删除空文件夹 RemoveDir; RemoveDirectory
//建立新文件 FileCreate
//获取当前文件的版本号 GetFileVersion
//获取磁盘空间 DiskSize; DiskFree
//搜索文件 FindFirst; FindNext; FindClose
//读取与设置文件属性 FileGetAttr; FileSetAttr
//获取文件的创建时间 FileAge; FileDateToDateTime

Delphi代码

    1. //判断文件是否存在 FileExists   
    2. var  
    3.   f: string;   
    4. begin  
    5.   f := 'c:\temp\test.txt';   
    6.   if not FileExists(f) then  
    7.   begin  
    8.    //如果文件不存在   
    9.   end;   
    10. end;   
    11.   
    12. --------------------------------------------------------------------------------   
    13.   
    14.   
    15. //判断文件夹是否存在 DirectoryExists   
    16. var  
    17.   dir: string;   
    18. begin  
    19.   dir := 'c:\temp';   
    20.   if not DirectoryExists(dir) then  
    21.   begin  
    22.    //如果文件夹不存在   
    23.   end;   
    24. end;   
    25.   
    26. --------------------------------------------------------------------------------   
    27.   
    28.   
    29. //删除文件 DeleteFile; Windows.DeleteFile   
    30. var  
    31.   f: string;   
    32. begin  
    33.   f := 'c:\temp\test.txt';   
    34. //DeleteFile(f);  //返回 Boolean   
    35.   
    36. //或者用系统API:   
    37.   Windows.DeleteFile(PChar(f)); //返回 Boolean   
    38. end;   
    39.   
    40. --------------------------------------------------------------------------------   
    41.   
    42.   
    43. //删除文件夹 RemoveDir; RemoveDirectory   
    44. var  
    45.   dir: string;   
    46. begin  
    47.   dir := 'c:\temp';   
    48.   RemoveDir(dir); //返回 Boolean   
    49.   
    50. //或者用系统 API:   
    51.   RemoveDirectory(PChar(dir)); //返回 Boolean   
    52. end;   
    53.   
    54. --------------------------------------------------------------------------------   
    55.   
    56.   
    57. //获取当前文件夹 GetCurrentDir   
    58. var  
    59.   dir: string;   
    60. begin  
    61.   dir := GetCurrentDir;   
    62.   ShowMessage(dir); //C:\Projects   
    63. end;   
    64.   
    65. --------------------------------------------------------------------------------   
    66.   
    67.   
    68. //设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory   
    69. var  
    70.   dir: string;   
    71. begin  
    72.   dir := 'c:\temp';   
    73.   if SetCurrentDir(dir) then  
    74.     ShowMessage(GetCurrentDir); //c:\temp   
    75.   
    76. //或者   
    77.   ChDir(dir); //无返回值   
    78.   
    79. //也可以使用API:   
    80.   SetCurrentDirectory(PChar(Dir)); //返回 Boolean   
    81. end;   
    82.   
    83. --------------------------------------------------------------------------------   
    84.   
    85.   
    86. //获取指定驱动器的当前路径名 GetDir   
    87. var  
    88.   dir: string;   
    89.   b: Byte;   
    90. begin  
    91.   b := 0;   
    92.   GetDir(b,dir);   
    93.   ShowMessage(dir); //   
    94.   
    95. //第一个参数: 1、2、3、4...分别对应: A、B、C、D...   
    96. //0 是缺省驱动器   
    97. end;   
    98.   
    99. --------------------------------------------------------------------------------   
    100.   
    101.   
    102. //文件改名 RenameFile   
    103. var  
    104.   OldName,NewName: string;   
    105. begin  
    106.   OldName := 'c:\temp\Old.txt';   
    107.   NewName := 'c:\temp\New.txt';   
    108.   
    109.   if RenameFile(OldName,NewName) then  
    110.     ShowMessage('改名成功!');   
    111.   
    112. //也可以:   
    113.   SetCurrentDir('c:\temp');   
    114.   OldName := 'Old.txt';   
    115.   NewName := 'New.txt';   
    116.   
    117.   if RenameFile(OldName,NewName) then  
    118.     ShowMessage('改名成功!');   
    119. end;   
    120.   
    121. --------------------------------------------------------------------------------   
    122.   
    123.   
    124. //建立文件夹 CreateDir; CreateDirectory; ForceDirectories   
    125. var  
    126.   dir: string;   
    127. begin  
    128.   dir := 'c:\temp\delphi';   
    129.   if not DirectoryExists(dir) then  
    130.     CreateDir(dir); //返回 Boolean   
    131.   
    132. //也可以直接用API:   
    133.   CreateDirectory(PChar(dir),nil); //返回 Boolean   
    134.   
    135. //如果缺少上层目录将自动补齐:   
    136.   dir := 'c:\temp\CodeGear\Delphi\2007\万一';   
    137.   ForceDirectories(dir); //返回 Boolean   
    138. end;   
    139.   
    140. --------------------------------------------------------------------------------   
    141.   
    142.   
    143. //删除空文件夹 RemoveDir; RemoveDirectory   
    144. var  
    145.   dir: string;   
    146. begin  
    147.   dir := 'c:\temp\delphi';   
    148.   RemoveDir(dir); //返回 Boolean   
    149.   
    150. //也可以直接用API:   
    151.   RemoveDirectory(PChar(dir)); //返回 Boolean   
    152. end;   
    153.   
    154. --------------------------------------------------------------------------------   
    155.   
    156.   
    157. //建立新文件 FileCreate   
    158. var  
    159.   FileName: string;   
    160.   i: Integer;   
    161. begin  
    162.   FileName := 'c:\temp\test.dat';   
    163.   i := FileCreate(FileName);   
    164.   
    165.   if i>0 then  
    166.     ShowMessage('新文件的句柄是: ' + IntToStr(i))   
    167.   else  
    168.     ShowMessage('创建失败!');   
    169. end;   
    170.   
    171. --------------------------------------------------------------------------------   
    172.   
    173.   
    174. //获取当前文件的版本号 GetFileVersion   
    175. var  
    176.   s: string;   
    177.   i: Integer;   
    178. begin  
    179.   s := 'C:\WINDOWS\notepad.exe';   
    180.   i := GetFileVersion(s); //如果没有版本号返回 -1   
    181.   ShowMessage(IntToStr(i)); //327681 这是当前记事本的版本号(还应该再转换一下)   
    182. end;   
    183.   
    184. --------------------------------------------------------------------------------   
    185.   
    186.   
    187. //获取磁盘空间 DiskSize; DiskFree   
    188. var  
    189.   r: Real;   
    190.   s: string;   
    191. begin  
    192.   r := DiskSize(3); //获取C:总空间, 单位是字节   
    193.   r := r/1024/1024/1024;   
    194.   Str(r:0:2,s); //格式为保留两位小数的字符串   
    195.   s := 'C盘总空间是: ' + s + ' GB';   
    196.   ShowMessage(s); //xx.xx GB   
    197.   
    198.   r := DiskFree(3); //获取C:可用空间   
    199.   r := r/1024/1024/1024;   
    200.   Str(r:0:2,s);   
    201.   s := 'C盘可用空间是: ' + s + ' GB';   
    202.   ShowMessage(s); //xx.xx GB   
    203. end;   
    204.   
    205. //查找一个文件 FileSearch   
    206. var  
    207.   FileName,Dir,s: string;   
    208. begin  
    209.   FileName := 'notepad.exe';   
    210.   Dir := 'c:\windows';   
    211.   s := FileSearch(FileName,Dir);   
    212.   
    213.   if s<>'' then  
    214.     ShowMessage(s) //c:\windows\notepad.exe   
    215.   else  
    216.     ShowMessage('没找到');   
    217. end;   
    218.   
    219. --------------------------------------------------------------------------------   
    220.   
    221.   
    222. //搜索文件 FindFirst; FindNext; FindClose   
    223. var  
    224.   sr: TSearchRec;    //定义 TSearchRec 结构变量   
    225.   Attr: Integer;     //文件属性   
    226.   s: string;         //要搜索的内容   
    227.   List: TStringList; //存放搜索结果   
    228. begin  
    229.   s := 'c:\windows\*.txt';   
    230.   Attr := faAnyFile;             //文件属性值faAnyFile表示是所有文件   
    231.   List := TStringList.Create;    //List建立   
    232.   
    233.   if FindFirst(s,Attr,sr)=0 then //开始搜索,并给 sr 赋予信息, 返回0表示找到第一个   
    234.   begin  
    235.     repeat                       //如果有第一个就继续找   
    236.       List.Add(sr.Name);         //用List记下结果   
    237.     until(FindNext(sr)<>0);      //因为sr已经有了搜索信息, FindNext只要这一个参数, 返回0表示找到   
    238.   end;   
    239.   FindClose(sr);                 //需要结束搜索, 搜索是内含句柄的   
    240.   
    241.   ShowMessage(List.Text);        //显示搜索结果   
    242.   List.Free;                     //释放List   
    243.   
    244. //更多注释:   
    245. //TSearchRec 结构是内涵文件大小、名称、属性与时间等信息   
    246. //TSearchRec 中的属性是一个整数值, 可能的值有:   
    247. //faReadOnly  1   只读文件   
    248. //faHidden    2   隐藏文件   
    249. //faSysFile   4   系统文件   
    250. //faVolumeID  8   卷标文件   
    251. //faDirectory 16  目录文件   
    252. //faArchive   32  归档文件   
    253. //faSymLink   64  链接文件   
    254. //faAnyFile   63  任意文件   
    255.   
    256. //s 的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:\*   
    257. //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等   
    258. end;   
    259.   
    260. --------------------------------------------------------------------------------   
    261.   
    262.   
    263. //读取与设置文件属性 FileGetAttr; FileSetAttr   
    264. var  
    265.   FileName: string;   
    266.   Attr: Integer; //属性值是一个整数   
    267. begin  
    268.   FileName := 'c:\temp\Test.txt';   
    269.   Attr := FileGetAttr(FileName);   
    270.   ShowMessage(IntToStr(Attr)); //32, 存档文件   
    271.   
    272. //设置为隐藏和只读文件:   
    273.   Attr := FILE_ATTRIBUTE_READONLY or FILE_ATTRIBUTE_HIDDEN;   
    274.   if FileSetAttr(FileName,Attr)=0 then //返回0表示成功   
    275.     ShowMessage('设置成功!');   
    276.   
    277. //属性可选值(有些用不着):   
    278. //FILE_ATTRIBUTE_READONLY = 1; 只读   
    279. //FILE_ATTRIBUTE_HIDDEN = 2; 隐藏   
    280. //FILE_ATTRIBUTE_SYSTEM = 4; 系统   
    281. //FILE_ATTRIBUTE_DIRECTORY = 16   
    282. //FILE_ATTRIBUTE_ARCHIVE = 32; 存档   
    283. //FILE_ATTRIBUTE_DEVICE = 64   
    284. //FILE_ATTRIBUTE_NORMAL = 128; 一般   
    285. //FILE_ATTRIBUTE_TEMPORARY = 256   
    286. //FILE_ATTRIBUTE_SPARSE_FILE = 512   
    287. //FILE_ATTRIBUTE_REPARSE_POINT = 1204   
    288. //FILE_ATTRIBUTE_COMPRESSED = 2048; 压缩   
    289. //FILE_ATTRIBUTE_OFFLINE = 4096   
    290. //FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192; 不被索引   
    291. //FILE_ATTRIBUTE_ENCRYPTED = 16384   
    292. end;   
    293.   
    294. --------------------------------------------------------------------------------   
    295.   
    296.   
    297. //获取文件的创建时间 FileAge; FileDateToDateTime   
    298. var  
    299.   FileName: string;   
    300.   ti: Integer;   
    301.   dt: TDateTime;   
    302. begin  
    303.   FileName := 'c:\temp\Test.txt';   
    304.   ti := FileAge(FileName);   
    305.   ShowMessage(IntToStr(ti)); //返回: 931951472, 需要转换   
    306.   
    307.   dt := FileDateToDateTime(ti); //转换   
    308.   ShowMessage(DateTimeToStr(dt)); //2007-12-12 14:27:32   
    309. end;