DELPHI文件、磁盘操作函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DELPHI文件、磁盘操作函数相关的知识,希望对你有一定的参考价值。

参考技术A

  软件大多都要对文件 磁盘进行操作 熟悉掌握这些函数可以帮助你轻松实现创建 删除 保存文件等功能

   Append功能说明 追加内容到文件中 文件必须要存在

  参考实例

  var

  S String

  F TextFile

  begin

  S = This is a book

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Append(F) // 以追加的方式打开文件

  Writeln(F S) // 将S变量中的内容追加到文本尾后

  CloseFile(F) // 关闭文件

  end

   AssignFile功能说明 与指定的文件建立连接

  参考实例

  var

  F TextFile // 声明文本文件类型变量

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  end

   ChDir功能说明 改变当前目录(文件夹)

  参考实例

  var

  sDir String

  begin

  sDir = C \\Windows

  ChDir(sDir) // 此时 系统的当前目录则为C \\Windows目录

  end

   CloseFile功能说明 关闭文件 当对文件的操作完成后 应该使用CloseFile函数关闭打开的文件

  参考实例

  var

  S String

  AllText String

  F TextFile

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Reset(F) // 打开文件

  while not EOF(F) do begin // 使用While循环 一直判断是否到了文件未尾

  Readln(F S) // 读取一行文本

  AllText = AllText + S

  end

  CloseFile(F) // 关闭文件

  end

   DeleteFile功能说明 删除指定的文件 该函数只有一个参数 此参数为欲删除文件的完整路径 如果删除成功 则返回True 若删除失败 或文件不存在则返回False

  参考实例

  var

  IsOK Boolean // 用于保存删除状态

  begin

  IsOK = DeleteFile( C \\My Documents\\l ) // 函数执著后 将结果返回给IsOK变量 如果IsOK变量为True 则表示文件删除成功

  if IsOK then ShowMessage( 文件删除成功! )

  else ShowMessage( 文件删除失败! )

  end

   DirectoryExists功能说明 检测指定的文件夹否存在 如果存在则返回True 反之则为False

  参考实例

  var

  IsExists Boolean

  begin

  IsExists = DirectoryExists ( C \\Windows )

  if IsExists then ShowMessage( Windows文件夹存在! )

  else ShowMessage( Windows文件夹不存在! )

  end

   DiskFree功能说明 获取指定磁盘的剩余空间 该函数只有一个参数 该参数用于指定要获取剩余空间的磁盘号 当参数为 时 表示获取当前磁盘的剩余空间 为A盘 为B盘 以此类推 如果返回值为

   表示指定的磁盘无效

  参考实例

  var

  FreeSize Int

  begin

  FreeSize = DiskFree( ) // 获取C盘中的剩余空间 返回的值是以 字节 为单位的

  end

   DiskSize功能说明 获取指定磁盘的空间 该函数只有一个参数 该参数用于指定要获取磁盘空间的磁盘号 当参数为 时 表示获取当前磁盘的空间 为A盘 为B盘 以此类推 如果返回值为 表示指

  定的磁盘无效

  参考实例

  var

  DiskSize Int

  begin

  DiskSize = DiskSize( ) // 获取C盘的空间 返回的值是以 字节 为单位的

  end

   EOF功能说明 判断文件指针是否移动到了文件未尾 当EOF函数返回值为True时 则不可以使用Readln函数进行读取文件了

  参考实例

  var

  S String

  AllText String

  F TextFile

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Reset(F) // 打开文件

  while not EOF(F) do begin // 使用While循环 一直判断是否到了文件未尾

  Readln(F S) // 读取一行文本

  AllText = AllText + S

  end

  end

   Erase功能说明 删除文件

  参考实例

  var

  F File

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Reset(F) // 打开文件

  CloseFile(F) // 关闭文件

  Erase(F) // 删除文件 在删除文件之前必须先关闭文件

  end

   FileExists功能说明 检测指定的文件否存在 如果存在则返回True 反之则为False

  参考实例

  var

  IsExists Boolean

  begin

  IsExists = FileExists( C \\Test txt )

  if IsExists then ShowMessage( 该文件存在! )

  else ShowMessage( 该文件不存在! )

  end

   FileSize功能说明 获取文件大小 返回的结果是字节为单位

  参考实例

  var

  F file of Byte

  nSize Longint

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Reset(F) // 打开文件

  nSize = FileSize(F) // 获取文件大小

  CloseFile(F) // 关闭文件

  end

   ForceDirectories功能说明 创建新的子目录 路径中不存在的目录将一同创建

  参考实例

  ForceDirectories( C \\Flash\\MyFolder ) // 如果Flash文件夹本身不存的话 那么将会先创建Flash文件夹 然后再创建MyFolder文件夹

   MkDir功能说明 创建一个新的子目录(文件夹)

  参考实例

  MkDir( C \\MyFolder ) // 在C盘根目录中创建了一个名叫MyFolder的文件夹

  需要注意的是 如果在本身不存在的目录中创建子目录将会失败 比如C盘根本不存在Flash文件夹 写成MkDir( C \\Flash\\MyFolder ) 这样将不能成功创建MyFolder文件夹

   Reset功能说明 以只读方式打开文件

  参考实例

  var

  F TextFile // 声明文本文件类型变量

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Reset(F) // 打开文件

  end

   Rewrite功能说明 以可写方式打开文件 如果文件不存在 将会自动创建 使用该函数 将会覆盖文件中的所有内容

  参考实例

  var

  F TextFile // 声明文本文件类型变量

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Rewrite(F) // 打开文件 如果文件不存在 将会在C盘中创建MyFile txt文件 如果文件存在 将会覆盖MyFile txt中的所有内容

  end

   Readln功能说明 读取一行文本

  参考实例

  var

  S String

  F TextFile

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Reset(F) // 打开文件

  Readln(F S) // 读取一行文本到S变量中

  end

   Rename功能说明 更改文件名

  参考实例

  var

  F File

  begin

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  ReName(F C \\NewFile txt ) // 更名为NewFile txt

  end

   Writeln功能说明 写入一行文本

  参考实例

  var

  S String

  F TextFile

  begin

  S = This is a book

  AssignFile(F C \\MyFile txt ) // 将C \\MyFile txt文件与F变量建立连接 后面可以使用F变量对文件进行操作

  Rewrite(F) // 创建新文件

  Writeln(F S) // 将S变量中的内容写入文本中

lishixinzhi/Article/program/Delphi/201311/8445

C 语言文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )





一、C 语言中的文件操作函数



读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本文件 写出数据可以使用 putc , fputs , fprintf 函数 ;

读取 二进制文件 可以使用 fread 函数 , 向 二进制文件 写出数据可以使用 fwrite 函数 ;





二、磁盘与内存缓冲区



上述所有读写文件的函数 , 都是缓冲区函数 , 即 C 语言中的文件操作 , 都是缓冲区函数 ;


磁盘 是由 操作系统 进行读写的 , 用户写的程序 , 不能直接操作磁盘 ;

操作系统 提供 读写文件的 系统调用 接口 , 在该接口上 是 C 语言的库函数 , 最上层就是 用户程序 ;


如果要操作硬件磁盘 , 就需要知道磁盘的驱动程序 , 磁盘扇区操作等 , 这就比较复杂了 ;


C 语言库函数 中 , 维护了一个缓冲区 , 这个缓冲区是 内存 中的缓冲区 ;

使用 C 语言文件操作函数 读写的 数据 , 不是直接来自磁盘 , 而是来自 内存中缓冲区 ;





三、缓冲区工作机制



缓冲区工作机制 :

如果 缓冲区大小 64KB , 假如使用 C 语言库函数 fread 读取一个字节数据 , 实际上会从磁盘文件中读取 64KB 数据 , 放入内存缓冲区中 ;

这是因为 读写内存的效率 远远高于 读写磁盘的效率 ;

这样的好处是 , 读取第 2 个字节时 , 可以直接从内存中读取 , 不需要再次读写磁盘 ;


该机制可以 增加用户程序的执行效率 , 减少磁盘访问次数 ;

磁盘有读写寿命 , 读写次数到了 , 磁盘就会报废 ;


缓冲区内容写入磁盘的时机 :

  • 缓冲区满了
  • 调用 fclose 关闭文件函数

以上是关于DELPHI文件、磁盘操作函数的主要内容,如果未能解决你的问题,请参考以下文章

文件磁盘操作函数

BCB/Delphi中常用的VCL函数说明(文件函数)

C 语言文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

C 语言文件操作 ( fflush 函数 | 刷新缓冲区示例代码 )

fopen()函数

使用 Delphi 2007 将 Base64 字符串作为二进制文件保存到磁盘