//判断文件是否存在 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;