1.AssignFile 过程
关联一个外部文件名到一个文件变量上。
单元
System

语法
procedure AssignFile(var F; FileName: string);

描述
调用AssignFile来初始化Delphi代码中的文件变量。F是一个任何文件类型的文件变量。FileName是一个字符串类型的表达式,或者,如果扩展的语法激活的话,是PChar类型的表达式。
调用AssignFile之后,F就和外部文件关联起来直到F被关闭。所有在文件变量F上的更多的操作都会操作在名为Filename的外部文件上。
当FileName参数为空时,AssignFile会将F和标准输入或标准输出文件关联起来。如果赋予一个空名字,在调用了Reset(F)之后,F将引用标准输入文件,而在调用了Rewrite(F)之后,F将引用标准输出文件。
不要在已经打开的文件变量上使用AssignFile。
注意:为了避免范围冲突,AssignFile 代替了在早期版本的Delphi产品中可用的Assign过程。然而为了向后兼容Assign仍然是可用的。
示例
var
F: TextFile;
S: string;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(F, OpenDialog1.FileName); { File selected in dialog }
Reset(F);
Readln(F, S); { Read first line of file }
Edit1.Text := S; { Put string in a TEdit control }
CloseFile(F);
end;
end;

2.ChDir 过程
改变当前目录

单元
System

语法
procedure ChDir(const S: string); overload;
procedure ChDir(P: PChar); overload;

描述
ChDir 会将当前目录改变为由S或P指定的路径。如果这个操作失败,异常EInOutError将会引发。
在Windows上,路径可以包含驱动器指示符(drive specifier),而这将导致当前的驱动盘同时改变。
注意:在Delphi中,{$I+} 使用异常来处理运行时错误。当使用{$I-}时,要使用IOResult来检查I/O错误。
示例
begin
{$I-}
{ Change to directory specified in Edit1 }
ChDir(Edit1.Text);
if IOResult <> 0 then
MessageDlg('Cannot find directory', mtWarning, [mbOk], 0);
end;

3.CloseFile 过程
终止文件变量和外部磁盘文件之间的关联

单元
System

语法
procedure CloseFile(var F);

描述
由于命名冲突,CloseFile代替了Close过程。使用CloseFile过程而不是Close来终止文件变量和外部磁盘文件之间的关联。
F是一个使用Reset,Rewrite或Append打开的任何文件类型的文件变量。和F关联的外部文件会完全地更新然后关闭并释放文件句柄便于重用。
注意:{$I+} 使用异常来处理运行时错误。当使用{$I-}时,要使用IOResult检查I/O 错误。

4.CreateDir 函数
创建一个新目录
单元
SysUtils
语法
function CreateDir(const Dir: string): Boolean;
描述
CreateDir 创建一个新目录。如果新目录成功创建,则返回值为true,或者如果出现错误则返回值为false。
示例
下面的例子会创建目录'C:\temp',如果目录不存在的话。

uses FileCtrl;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not DirectoryExists('c:\temp') then
if not CreateDir('C:\temp') then
raise Exception.Create('Cannot create c:\temp');
end;

5.DeleteFile 函数
从删除一个磁盘文件
单元
SysUtils
语法
function DeleteFile(const FileName: string): Boolean;
描述
DeleteFile 删除磁盘上由 FileName 命名的文件。如果文件不能被删除或者文件不存在,函数将返回false。
示例

if FileExists(FileName) then
if MessageDlg('Do you really want to delete ' + ExtractFileName(FileName) + '?'), mtConfirmation, [mbYes, mbNo], 0, mbNo) = IDYes then
DeleteFile(FileName);

6.DirectoryExists 函数
确定指定的目录是否存在
单元
SysUtils
语法
function DirectoryExists(const Directory: string): Boolean;
描述
调用 DirectoryExists 来确定由Directory参数指定的目录是否存在。如果目录存在,函数返回true。如果目录不存在,函数返回false。
如果输入的是全称路径名(full path name),DirectoryExists 会沿着指定的路径查找目录。否则Directory参数会被认为是当前目录的相对路径。
FileCtrl 单元(仅用于Windows) 同样包含一个 DirectoryExists 函数。然而,FileCtrl 版本是不赞成的,SysUtils 版本是首选的,即使代码不需要跨平台(However, the FileCtrl version is deprecated, and the SysUtils version preferred, even if the code does not need to be cross-platform)。

7.DiskFree 函数
返回指定盘符上空闲的字节数
单元
SysUtils
语法
function DiskFree(Drive: Byte): Int64;
描述
DiskFree 返回指定驱动盘()的空闲字节数,其中 0 = 当前盘, 1 = A, 2 = B,等等。如果驱动盘数字无效,DiskFree 返回-1。
注意:DiskFree

仅在Windows上可用。
示例
var
S: string;
AmtFree: Int64;
Total: Int64;
begin
AmtFree := DiskFree(0);
Total := DiskSize(0);
S := IntToStr(AmtFree div Total) + 'percent of the space on drive 0 is free: ' (AmtFree div 1024) + ' Kbytes free. ';
Label1.Caption := S;
end;

8.DiskSize 函数
返回指定盘符的字节大小
单元
SysUtils
语法
function DiskSize(Drive: Byte): Int64;
描述
DiskSize 返回指定驱动盘的字节大小,其中 0 = 当前盘,1 = A, 2 = B, 等等。如果驱动盘数字无效,DiskSize返回-1。
注意:DiskSize 仅在Windows上可用。

9.文件模式常量(File mode constants)
文件模式常量用于打开和关闭磁盘文件
单元
System
语法
const fmClosed = $D7B0; // closed file
const fmInput = $D7B1; // reset file (TTextRec)
const fmOutput = $D7B2; // rewritten file (TTextRec)
const fmInOut = $D7B3; // reset or rewritten file (TFileRec)
const fmCRLF = $8 // DOS-style EoL and EoF markers (TTextRec)
const fmMask = $D7B3; // mask out fmCRLF flag (TTextRec)
描述 当打开和关闭磁盘文件时,使用文件模式常量。这些常量主要用在这样的Delphi代码中,TFileRec和TTextRec的Mode字段包含这些值中的某个值(These constants are used primarily in Delphi code, where the Mode field of TFileRec and TTextRec contain one of these values.)。

10.文件名称常量(File name constants)
文件名称常量用于以平台中立的方式表达文件名称。
单元
SysUtils
语法
const
PathDelim = {$IFDEF MSWINDOWS} '\'; {$ELSE} '/'; {$ENDIF}
DriveDelim = {$IFDEF MSWINDOWS} ':'; {$ELSE} ''; {$ENDIF}
PathSep = {$IFDEF MSWINDOWS} ';'; {$ELSE} ':'; {$ENDIF}
描述
文件名称常量指定了在Windows和Linux中不同的的定界符和分隔符(delimiter and separator)。

11.文件打开模式常量(File open mode constants)
打开打开模式常量用于控制对文件或流的访问模式。
单元
SysUtils
语法
On Windows:
const
fmCreate = $FFFF;
fmOpenRead = $0000;
fmOpenWrite = $0001;
fmOpenReadWrite = $0002;

fmShareCompat = $0000 platform;
fmShareExclusive = $0010;
fmShareDenyWrite = $0020;
fmShareDenyRead = $0030 platform;
fmShareDenyNone = $0040;

On Linux:
const
fmOpenRead = O_RDONLY;
fmOpenWrite = O_WRONLY;
fmOpenReadWrite = O_RDWR;
fmShareExclusive = $0010;
fmShareDenyWrite = $0020;
fmShareDenyNone = $0030;

描述
当文件或流被打开时,文件打开模式常量用于控制文件或流能够如何共享。
TFileStream构造函数有一个Mode参数,你能够设置为这些常量中的一个:
Constant Definition

fmCreate 如果文件存在,那么将打开用于写访问,否则会创建新文件。其他的常量都声明在 SysUtils 单元,而这个常量声明在 Classes 单元中
fmOpenRead 仅以读访问方式打开
fmOpenWrite 仅以写访问方式打开
fmOpenReadWrite 以读写访问方式打开
fmShareCompat 和FCB打开的方法兼容。不要在跨平台应用程序中使用这个模式
fmShareExclusive 读写访问被拒绝
fmShareDenyWrite 写访问被拒绝
fmShareDenyRead 读访问被拒绝。不要在跨平台应用程序中使用这个模式
fmShareDenyNone 允许其他代码进行完全的访问

12.FileAccessRights 变量
当应用程序被调用时指向特殊的命令行参数。
单元
System
语法
var FileAccessRights: Integer platform;
描述
在 Windows 中,FileAccessRights 变量被忽略。
在 Linux 中,每个文件都有一组许可位(permission bits)控制着对文件的访问。当创建新文件时,FileAccessRights 指定了一组默认的许可标记来使用。当你没有显式指定要使用的许可位时,FileCreate 方法使用 FileAccessRights 来设置它创建的文件的访问权力。

13.FileAge 函数
返回文件的OS时间戳(Returns the OS timestamp of a file.)
单元
SysUtils
语法
function FileAge(const FileName: string): Integer;
描述
调用 FileAge 来获得由 FileNameto 指定的文件的 OS 时间戳。返回值可以使用 FileDateToDateTime函数转换为TDateTime对象。如果文件不存在返回值为 -1。
在Linux中,-1 是一个有效的时间戳。可使用 FileExists 核实文件不存在。
示例
下面的代码将一个文件的属性读入一组变量中,并在文件属性对话框中设置检查框以表现当前的属性,然后执行对话框。如果用户改变并接受对话框的设置,代码将设置文件属性以匹配改变的设置:
procedure TFMForm.Properties1Click(Sender: TObject);
var

Attributes, NewAttributes: Word;
begin
with FileAttrForm do
begin
FileDirName.Caption := FileList.Items[FileList.ItemIndex];
{ set box caption }
PathName.Caption := FileList.Directory;
{ show directory name }
ChangeDate.Caption :=
DateTimeToStr(FileDateToDateTime(FileAge(FileList.FileName)));
Attributes := FileGetAttr(FileDirName.Caption);
{ read file attributes }
ReadOnly.Checked := (Attributes and SysUtils.faReadOnly) = faReadOnly;
Archive.Checked := (Attributes and faArchive) = faArchive;
System.Checked := (Attributes and faSysFile) = faSysFile;
Hidden.Checked := (Attributes and faHidden) = faHidden;
if ShowModal <> id_Cancel then { execute dialog box }
begin
NewAttributes := Attributes;
{ start with original attributes }
if ReadOnly.Checked then
NewAttributes := NewAttributes or SysUtils.faReadOnly
else
NewAttributes := NewAttributes and not SysUtils.faReadOnly;
if Archive.Checked then
NewAttributes := NewAttributes or faArchive
else
NewAttributes := NewAttributes and not faArchive;
if System.Checked then
NewAttributes := NewAttributes or faSysFile
else
NewAttributes := NewAttributes and not faSysFile;
if Hidden.Checked then
NewAttributes := NewAttributes or faHidden
else
NewAttributes := NewAttributes and not faHidden;
if NewAttributes <> Attributes then { if anything changed... }
FileSetAttr(FileDirName.Caption, NewAttributes);
{ ...write the new values }
end;
end;
end;

14.FileClose 过程
关闭指定的文件
单元
SysUtils
语法
procedure FileClose(Handle: Integer);
描述
FileClose 关闭给定文件句柄的文件。句柄在文件使用FileOpen或FileCreate打开时获得。
当和Delphi语言的文件变量一起使用时,应使用 CloseFile 过程代替。
示例
下面的例子使用了一个按钮,一个字符串栅格和一个保存对话框在窗体上。单击按钮后,用户将被提示输入文件名。当用户单OK后,字符串栅格的内容将被写到指定的文件中。附加的信息同样被写到文件中,以便文件能够使用FileRead函数容易地读取。
procedure TForm1.Button1Click(Sender: TObject);
var
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
X: Integer;
Y: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAK');
if not RenameFile(SaveDialog1.FileName, BackupName) then
raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
{ Write out the number of rows and columns in the grid. }
FileWrite(FileHandle,
StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
for X := 0 to StringGrid1.ColCount - 1 do
begin
for Y := 0 to StringGrid1.RowCount - 1 do
begin
{ Write out the length of each string, followed by the string itself. }
StringLen := Length(StringGrid1.Cells[X,Y]);
FileWrite(FileHandle, StringLen, SizeOf(StringLen));
FileWrite(FileHandle,
StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
end;
end;
FileClose(FileHandle);
end;
end;

15.FileCreate 函数
创建一个新文件
单元
SysUtils
语法
function FileCreate(const FileName: string): Integer; overload;
function FileCreate(const FileName: string; Rights: Integer): Integer; overload;

描述
FileCreate 用指定的名称创建新文件。如果返回值是正数,说明函数成功而且值是新文件的句柄。返回值是-1说明有错误发生。
在 Windows中,FileAccessRights 变量和 Rights 参数被忽略。

转载于:https://www.cnblogs.com/seahorse/archive/2009/06/18/1505624.html

Delphi文件管理操作实例相关推荐

  1. .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...

    ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...

  2. python数值运算实例_Python矩阵常见运算操作实例总结

    本文实例讲述了Python矩阵常见运算操作.分享给大家供大家参考,具体如下: python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包. 一.numpy的导入 ...

  3. html自定义datajs,科技常识:HTML5的自定义属性data-*详细介绍和JS操作实例

    今天小编跟大家讲解下有关HTML5的自定义属性data-*详细介绍和JS操作实例 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关HTML5的自定义属性data-*详细介绍和JS操作实例 的 ...

  4. CentOS 配置防火墙操作实例(启、停、开、闭端口)

          CentOS 配置防火墙操作实例(启.停.开.闭端口):   注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service   iptables s ...

  5. c 获取当前时间插入oracle数据库,Oracle如何获取系统当前时间等操作实例,c++获取系统时间...

    Oracle如何获取系统当前时间等操作实例,c++获取系统时间 获取系统当前时间 date类型的 select sysdate from dual; char类型的 select to_char(sy ...

  6. php扇形分布图,PHP制作3D扇形统计图以及对图片进行缩放操作实例

    这篇文章主要介绍了PHP制作3D扇形统计图以及对图片进行缩放操作实例,需要的朋友可以参考下 1.利用php gd库的函数绘制3D扇形统计图 header("content-type" ...

  7. legend3---lavarel多对多模型操作实例

    legend3---lavarel多对多模型操作实例 一.总结 一句话总结: 在多对多模型中,增加关系表的数据 需要 弄一个和关系表一对多的模型关系 1.在lavarel关系模型中,课程和标签表是多对 ...

  8. 后盾网lavarel视频项目---lavarel多表关联一对多操作实例

    后盾网lavarel视频项目---lavarel多表关联一对多操作实例 一.总结 一句话总结: 1.一对多中多那个部分的数据前端通过json弄到服务器 2.所有通过一操作多的时候,都要用上模型中定义的 ...

  9. notepad++ 操作实例

    下面图解一些notepad++ 操作实例: 函数列表功能: 在菜单中选择 视图-函数列表 ,将在左侧显示类和函数列表: 文件概要: 在菜单中选择 视图-概要,显示文件的概要,字符数.单词数.行数.文档 ...

最新文章

  1. CentOS7.4-btrfs管理及使用
  2. VGG16之特征提取和网络参数的查看(偏置和权重)(这里只做简单介绍)
  3. matplotlib 和 pandas 两个包的安装
  4. python车辆管理系统_Python简易版停车管理系统
  5. 高性能分布式计算与存储系统设计概要——暨2012年工作3年半总结
  6. 3ds max 渲染清晰面片的边缘
  7. 哈希表和红黑树的对比
  8. SpringCloudStream整合rabbitMq
  9. 计算机三级之嵌入式系统学习笔记4
  10. 批量创建用户邮箱并修改别名
  11. [转载] python string 字符串转换为字典 dict
  12. 你还在全量加载iView么?试试手动配一个吧
  13. 基本的http压力测试工具
  14. 一文详解工业相机和镜头选取
  15. android miui连接开发者选项,(最详细)MIUI11系统的Usb调试模式在哪里开启的步骤
  16. excel查重复_中小企业使用ERP管理软件与EXCEL的区别
  17. 【Jenkins】win 10 / win 11:Jenkins 的下载、安装、部署(Jenkins 2.365 基于 Java 17)
  18. 书记员计算机打字速度要求,干货 | 书记员提升打字速度的要求
  19. 人工智能下一个热点探讨,为什么要提出互联网大脑模型
  20. 插入页眉和页脚-----------毕业设计必备攻略

热门文章

  1. codeforces Round 314 div.2
  2. 【LeetCode 655】输出二叉树
  3. iOS APP支持所有全面屏
  4. WIA-PA标准:中国工业无线技术新突破
  5. 优秀前端人都知道的H5 移动端调试全攻略~
  6. qnx 设备驱动开发_QNX操作系统及网络设备驱动模块
  7. HP Elitebook 8440p解决ubuntu10.10显卡,无线网卡不能用
  8. 使用 F12 开发人员工具调试 HTML 和 CSS
  9. WLAN-Web配置AP
  10. QT 进程间通信——共享内存