文件管理类函数(1)
//判断文件是否存在 FileExists
var
f: string;
begin
f := 'c:/temp/test.txt';
if not FileExists(f) then
begin
 //如果文件不存在
end;
end;

    FileClose(i);//这行必须要有,否则不能执行其他读写操作
else
ShowMessage('创建失败!');
end;



//获取当前文件的版本号 GetFileVersion
var
s: string;
i: Integer;
begin
s := 'C:/WINDOWS/notepad.exe';
i := GetFileVersion(s);  //如果没有版本号返回 -1
ShowMessage(IntToStr(i));  //327681 这是当前记事本的版本号(还应该再转换一下)
end;


//获取磁盘空间 DiskSize; DiskFree
var
r: Real;
s: string;
begin
r := DiskSize(3);  //获取C:总空间, 单位是字节
r := r/1024/1024/1024;
Str(r:0:2,s);  //格式为保留两位小数的字符串
s := 'C盘总空间是: ' + s + ' GB';
ShowMessage(s);  //xx.xx GB
r := DiskFree(3);  //获取C:可用空间
r := r/1024/1024/1024;
Str(r:0:2,s);
s := 'C盘可用空间是: ' + s + ' GB';
ShowMessage(s);  //xx.xx GB
end;


//判断文件夹是否存在 DirectoryExists
var
dir: string;
begin
dir := 'c:/temp';
if not DirectoryExists(dir) then
begin
 //如果文件夹不存在
end;
end;


//删除文件 DeleteFile; Windows.DeleteFile
var
f: string;
begin
f := 'c:/temp/test.txt';
 //DeleteFile(f);  //返回 Boolean
 //或者用系统API:
Windows.DeleteFile(PChar(f));  //返回 Boolean
end;


//删除文件夹 RemoveDir; RemoveDirectory
var
dir: string;
begin
dir := 'c:/temp';
RemoveDir(dir);  //返回 Boolean
 //或者用系统 API:
RemoveDirectory(PChar(dir));  //返回 Boolean
end;


//获取当前文件夹 GetCurrentDir
var
dir: string;
begin
dir := GetCurrentDir;
ShowMessage(dir); //C:/Documents and Settings/wy/My Documents/RAD Studio/Projects
end;


//设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory
var
dir: string;
begin
dir := 'c:/temp';
if SetCurrentDir(dir) then
ShowMessage(GetCurrentDir);  //c:/temp
 //或者
ChDir(dir);  //无返回值
 //也可以使用API:
SetCurrentDirectory(PChar(Dir));  //返回 Boolean
end;


//获取指定驱动器的当前路径名 GetDir
var
dir: string;
b: Byte;
begin
b := 0;
GetDir(b,dir);
ShowMessage(dir);  //
 //第一个参数: 1、2、3、4...分别对应: A、B、C、D...
 //0 是缺省驱动器
end;


//文件改名 RenameFile
var
OldName,NewName: string;
begin
OldName := 'c:/temp/Old.txt';
NewName := 'c:/temp/New.txt';
if RenameFile(OldName,NewName) then
ShowMessage('改名成功!');
 //也可以:
SetCurrentDir('c:/temp');
OldName := 'Old.txt';
NewName := 'New.txt';
if RenameFile(OldName,NewName) then
ShowMessage('改名成功!');
end;


//建立文件夹 CreateDir; CreateDirectory; ForceDirectories
var
dir: string;
begin
dir := 'c:/temp/delphi';
if not DirectoryExists(dir) then
CreateDir(dir);  //返回 Boolean
 //也可以直接用API:
CreateDirectory(PChar(dir),nil);  //返回 Boolean
 //如果缺少上层目录将自动补齐:
dir := 'c:/temp/CodeGear/Delphi/2007/万一';
ForceDirectories(dir);  //返回 Boolean
end;


//删除空文件夹 RemoveDir; RemoveDirectory
var
dir: string;
begin
dir := 'c:/temp/delphi';
RemoveDir(dir);  //返回 Boolean
 //也可以直接用API:
RemoveDirectory(PChar(dir));  //返回 Boolean
end;


//建立新文件 FileCreate
var
FileName: string;
i: Integer;
begin
FileName := 'c:/temp/test.dat';
i := FileCreate(FileName);
if i>0 then
ShowMessage('新文件的句柄是: ' + IntToStr(i))
文件管理类函数(2)
//查找一个文件 FileSearch
var
FileName,Dir,s: string;
begin
FileName := 'notepad.exe';
Dir := 'c:/windows';
s := FileSearch(FileName,Dir);
if s<>'' then
ShowMessage(s)  //c:/windows/notepad.exe
else
ShowMessage('没找到');
end;



//搜索文件 FindFirst; FindNext; FindClose
var
sr: TSearchRec;     //定义 TSearchRec 结构变量
Attr: Integer;      //文件属性
s: string;          //要搜索的内容
List: TStringList;  //存放搜索结果
begin
s := 'c:/windows/*.txt';
Attr := faAnyFile;              //文件属性值faAnyFile表示是所有文件
List := TStringList.Create;     //List建立
if FindFirst(s,Attr,sr)=0 then  //开始搜索,并给 sr 赋予信息, 返回0表示找到第一个
begin
repeat                        //如果有第一个就继续找
List.Add(sr.Name);          //用List记下结果
until(FindNext(sr)<>0);       //因为sr已经有了搜索信息, FindNext只要这一个参数, 返回0表示找到
end;
FindClose(sr);                  //需要结束搜索, 搜索是内含句柄的
ShowMessage(List.Text);         //显示搜索结果
List.Free;                      //释放List
 //更多注释:
 //TSearchRec 结构是内涵文件大小、名称、属性与时间等信息
 //TSearchRec 中的属性是一个整数值, 可能的值有:
 //faReadOnly  1   只读文件
 //faHidden    2   隐藏文件
 //faSysFile   4   系统文件
 //faVolumeID  8   卷标文件
 //faDirectory 16  目录文件
 //faArchive   32  归档文件
 //faSymLink   64  链接文件
 //faAnyFile   63  任意文件
 //s 的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:/*
 //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等
end;


//读取与设置文件属性 FileGetAttr; FileSetAttr
var
FileName: string;
Attr: Integer;  //属性值是一个整数
begin
FileName := 'c:/temp/Test.txt';
Attr := FileGetAttr(FileName);
ShowMessage(IntToStr(Attr));  //32, 存档文件
 //设置为隐藏和只读文件:
Attr := FILE_ATTRIBUTE_READONLY or FILE_ATTRIBUTE_HIDDEN;
if FileSetAttr(FileName,Attr)=0 then  //返回0表示成功
ShowMessage('设置成功!');
 //属性可选值(有些用不着):
 //FILE_ATTRIBUTE_READONLY = 1; 只读
 //FILE_ATTRIBUTE_HIDDEN = 2; 隐藏
 //FILE_ATTRIBUTE_SYSTEM = 4; 系统
 //FILE_ATTRIBUTE_DIRECTORY = 16
 //FILE_ATTRIBUTE_ARCHIVE = 32; 存档
 //FILE_ATTRIBUTE_DEVICE = 64
 //FILE_ATTRIBUTE_NORMAL = 128; 一般
 //FILE_ATTRIBUTE_TEMPORARY = 256
 //FILE_ATTRIBUTE_SPARSE_FILE = 512
 //FILE_ATTRIBUTE_REPARSE_POINT = 1204
 //FILE_ATTRIBUTE_COMPRESSED = 2048; 压缩
 //FILE_ATTRIBUTE_OFFLINE = 4096
 //FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192; 不被索引
 //FILE_ATTRIBUTE_ENCRYPTED = 16384
end;


//获取文件的创建时间 FileAge; FileDateToDateTime
var
FileName: string;
ti: Integer;
dt: TDateTime;
begin
FileName := 'c:/temp/Test.txt';
ti := FileAge(FileName);
ShowMessage(IntToStr(ti));  //返回: 931951472, 需要转换
dt := FileDateToDateTime(ti);  //转换
ShowMessage(DateTimeToStr(dt));  //2007-12-12 14:27:32
end;

DELPHI 文件操作 万一博客相关推荐

  1. Markdown入门和解决MD文件上传博客后图片无法显示问题

    文章目录 Markdown基础和解决MD文件上传博客后图片无法显示问题 一.常见文本操作 1.标题 一级标题 二级标题 三级标题 四级标题 2.代码块 3.字体 4.引用 5.分割线 6.超链接 7. ...

  2. CentOS经常使用文件操作命令[百度博客搬家]

    路径操作的CentOS经常使用命令 如今整理例如以下(百度博客搬家)  cd pwd  NO1. 显示当前路径  [root@rehat root]# pwd  NO2. 返回用户主文件夹  [roo ...

  3. delphi文件操作

    如何在delphi中操作文件的读与写?    我刚开始接触delphi,如何在delphi中操作文件的读与写,哪位朋友指教一下非常感谢!最好来段源码. var f:text; ...   Assign ...

  4. v62.02 鸿蒙内核源码分析(文件概念) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码

    司马牛忧曰:"人皆有兄弟,我独亡."子夏曰:"商闻之矣:死生有命,富贵在天.君子敬而无失,与人恭而有礼.四海之内,皆兄弟也.君子何患乎无兄弟也?" <论语 ...

  5. Delphi 转载:万一博客中的“多线程”解读

    博客总目录(2007.11.12 - 2010.4.25) https://www.cnblogs.com/del/archive/2010/04/25/1720750.html 多线程编程(17) ...

  6. 计算机视觉--图像处理基础操作学习博客参考1

    以下内容为参考学习使用. 个人电脑的浏览器经常更换,不便收藏,记录在本文供以后学习参考使用. 该网友有编程经验,从实践的角度看OpenCV和图像处理的基本操作,并提供代码和解析 博客园某网友的的链接: ...

  7. css文件插入背景音乐,博客园添加背景音乐,背景效果!

    博客园添加背景音乐,背景效果 申请博客园js权限 申请话术 实例 尊敬的博客园管理员: 请求申请开通js权限,希望能够把自己的博客修饰的漂亮点,点缀自定义js插件效果,希望管理员可以批准,谢谢! 开通 ...

  8. 来一些方便的小操作:博客园(cnblog)自定义界面

    可以做点什么呢? 例如: 或者:  目录: 侧边栏分享功能 侧边工具栏        访问统计 RevolverMaps      背景更换         网页天气插件 在实现这些功能之前,需要具备 ...

  9. Delphi文件操作函数

    1.IncludeTrailingPathDelimiter和ExcludeTrailingPathDelimiter IncludeTrailingPathDelimiter(const S:Str ...

最新文章

  1. 重学前端之(4)函数、作用域、预解析
  2. LINQ to Entities 基于方法的查询语法
  3. python教程:实现延时回调普通函数的方法
  4. linux卸载mariadb数据库,CentOS yum 安装、卸载MariaDB数据库
  5. elastic学习笔记
  6. 提高 Web 站点性能的最佳实践
  7. 《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》
  8. 使用一下SQL Server 2008中的新日期函数
  9. TCP三次握手和四次挥手详解 --- 转载
  10. STM32F407概述
  11. 何谓自顶向下,何谓自底向上
  12. 工业机器人pallet指令_工业机器人编程指令详解
  13. A1,A2,A3,A4,A5,A6,A7,A8纸张大小图解
  14. 外网登录homeassistant
  15. iOS播放器SDK-基于FFmpeg解码OpenGL渲染-CYPlayer
  16. 浙江大学【面板数据分析与STATA应用】——第一讲短面板数据分析
  17. 贝茜放慢脚步(二路归并)
  18. Android红外功能模拟触摸鼠标事件唤醒屏幕
  19. DINO:一种新的端到端目标检测器(速读版)
  20. 盛金公式解一元三次方程_一元三次方程解法(卡尔丹公式法盛金公式法)

热门文章

  1. CAD技巧之002——如何用Cass内插高程点或者说加密高程点
  2. Halcon实用:焊点检出设计思路
  3. Ubuntu 下安装 SVN 服务端
  4. idea web 导包
  5. Springboot实现语音听写转文字功能
  6. android模拟器限制网速,安卓模拟器设置网速.htm
  7. 浅谈LED路灯智能控制技术模式
  8. Linux下软件安装 非root用户安装软件的一般流程
  9. nginx配置前端不缓存
  10. 区块链软件开发:区块链颠覆性渐渐开始  2019年需求侧开始涌现出大量需求...