DELPHI 文件操作 万一博客
//判断文件是否存在 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))
//查找一个文件 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 文件操作 万一博客相关推荐
- Markdown入门和解决MD文件上传博客后图片无法显示问题
文章目录 Markdown基础和解决MD文件上传博客后图片无法显示问题 一.常见文本操作 1.标题 一级标题 二级标题 三级标题 四级标题 2.代码块 3.字体 4.引用 5.分割线 6.超链接 7. ...
- CentOS经常使用文件操作命令[百度博客搬家]
路径操作的CentOS经常使用命令 如今整理例如以下(百度博客搬家) cd pwd NO1. 显示当前路径 [root@rehat root]# pwd NO2. 返回用户主文件夹 [roo ...
- delphi文件操作
如何在delphi中操作文件的读与写? 我刚开始接触delphi,如何在delphi中操作文件的读与写,哪位朋友指教一下非常感谢!最好来段源码. var f:text; ... Assign ...
- v62.02 鸿蒙内核源码分析(文件概念) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码
司马牛忧曰:"人皆有兄弟,我独亡."子夏曰:"商闻之矣:死生有命,富贵在天.君子敬而无失,与人恭而有礼.四海之内,皆兄弟也.君子何患乎无兄弟也?" <论语 ...
- Delphi 转载:万一博客中的“多线程”解读
博客总目录(2007.11.12 - 2010.4.25) https://www.cnblogs.com/del/archive/2010/04/25/1720750.html 多线程编程(17) ...
- 计算机视觉--图像处理基础操作学习博客参考1
以下内容为参考学习使用. 个人电脑的浏览器经常更换,不便收藏,记录在本文供以后学习参考使用. 该网友有编程经验,从实践的角度看OpenCV和图像处理的基本操作,并提供代码和解析 博客园某网友的的链接: ...
- css文件插入背景音乐,博客园添加背景音乐,背景效果!
博客园添加背景音乐,背景效果 申请博客园js权限 申请话术 实例 尊敬的博客园管理员: 请求申请开通js权限,希望能够把自己的博客修饰的漂亮点,点缀自定义js插件效果,希望管理员可以批准,谢谢! 开通 ...
- 来一些方便的小操作:博客园(cnblog)自定义界面
可以做点什么呢? 例如: 或者: 目录: 侧边栏分享功能 侧边工具栏 访问统计 RevolverMaps 背景更换 网页天气插件 在实现这些功能之前,需要具备 ...
- Delphi文件操作函数
1.IncludeTrailingPathDelimiter和ExcludeTrailingPathDelimiter IncludeTrailingPathDelimiter(const S:Str ...
最新文章
- 重学前端之(4)函数、作用域、预解析
- LINQ to Entities 基于方法的查询语法
- python教程:实现延时回调普通函数的方法
- linux卸载mariadb数据库,CentOS yum 安装、卸载MariaDB数据库
- elastic学习笔记
- 提高 Web 站点性能的最佳实践
- 《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》
- 使用一下SQL Server 2008中的新日期函数
- TCP三次握手和四次挥手详解 --- 转载
- STM32F407概述
- 何谓自顶向下,何谓自底向上
- 工业机器人pallet指令_工业机器人编程指令详解
- A1,A2,A3,A4,A5,A6,A7,A8纸张大小图解
- 外网登录homeassistant
- iOS播放器SDK-基于FFmpeg解码OpenGL渲染-CYPlayer
- 浙江大学【面板数据分析与STATA应用】——第一讲短面板数据分析
- 贝茜放慢脚步(二路归并)
- Android红外功能模拟触摸鼠标事件唤醒屏幕
- DINO:一种新的端到端目标检测器(速读版)
- 盛金公式解一元三次方程_一元三次方程解法(卡尔丹公式法盛金公式法)