转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
Delphi例程-文件管理例程(1~15)         ★★★★

Delphi例程-文件管理例程(1~15)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1745 更新时间:2009/4/23 18:35:21


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
 

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台