CBuilder的文件操作

CBuilder:提升开发效率与项目管理的迁移之旅 本文还有配套的精品资源,点击获取 简介:为了提高开发效率和优化项目管理,我们将迁移至CBuilder,一个专为C++和Delphi开发者设计的集成开发环境(IDE)。CBuilder通过其内置的包管理器和依赖管理器,为PHP项目提供高效的程序构建体验。 1. CBuilder集成开发环境介绍 CBuilder是一个为开发者提供的集成开发环境(IDE),它集成... 阅读详情
在BCB中也提供了文件操作的函数,这些函数的功能和前面所介绍的大致相同,但这类函数和BCB关系紧密,能使用BCB中的AnsiString等数据类型,在BCB中用这种方式的文件操作是最方便的,下面我就把这种文件操作详细介绍。

  在BCB提供的这组文件操作函数中,可分为三种类型,就是:1、文件名函数,2、文件管理函数;3、文件I/O函数。

1、文件名函数
  文件名函数可以对文件的名称、所在子目录、驱动器和扩展名等进行操作。下表列出这些函数及其功能。

函数 说明 
ExpandFileName() 返回文件的全路径(含驱动器、路径) 
ExtractFileExt() 从文件名中抽取扩展名 
ExtractFileName() 从文件名中抽取不含路径的文件名 
ExtractFilePath() 从文件名中抽取路径名 
ExtractFileDir() 从文件名中抽取目录名 
ExtractFileDrive() 从文件名中抽取驱动器名 
ChangeFileExt() 改变文件的扩展名 
ExpandUNCFileName() 返回含有网络驱动器的文件全路径 
ExtractRelativePath() 从文件名中抽取相对路径信息 
ExtractShortPathName() 把文件名转化为DOS的8·3格式 
MatchesMask() 检查文件是否与指定的文件名格式匹配 

  下面就把这些函数作一一介绍:

⑴ExpandFileName() 
  原型:extern PACKAGE AnsiString __fastcall ExpandFileName(const AnsiString FileName);

  功能:返回文件的全路径(含驱动器、路径)

  参数:FileName:要处理的文件名

  例:ShowMessage(ExpandFileName(Application->ExeName));//显示你的程序文件名,如C:/MyBCB/Sample1.EXE

⑵ExtractFileExt()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileExt(const AnsiString FileName);

  功能:从文件名中抽取扩展名

  参数:FileName:要处理的文件名(全路径)

  例:ShowMessage(ExtractFileExt(Application->ExeName));//显示".exe"

⑶ExtractFileName()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileName(const AnsiString FileName); 

  功能:从文件名中抽取不含路径的文件名

  参数:FileName:要处理的文件名

  例:ShowMessage(ExtractFileExt("c://Winnt//SOL.EXE"));//显示"SOL.EXE"

⑷ExtractFilePath()
  原型:extern PACKAGE AnsiString __fastcall ExtractFilePath(const AnsiString FileName); 

  功能:从文件名中抽取路径名

  参数:FileName:要处理的文件名

  例:ShowMessage(ExtractFilePath("Winnt//SOL.EXE"));//显示"Winnt/"

⑸ExtractFileDir()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileDir(const AnsiString FileName); 

  功能:从文件名中抽取目录名(和上个函数不同,不包括最后的"/")

  参数:FileName:要处理的文件名

  例:ShowMessage(ExtractFileDir("Winnt//SOL.EXE"));//显示"Winnt",注意和上个函数的区别 

⑹ExtractFileDrive()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileDrive(const AnsiString FileName); 

  功能:从文件名中抽取驱动器名

  参数:FileName:要处理的文件名

  例:ShowMessage(ExtractFileDrive("c://Winnt//SOL.EXE"));//显示"c:"

⑺ChangeFileExt()
  原型:extern PACKAGE System::AnsiString __fastcall ChangeFileExt(const System::AnsiString FileName, const System::AnsiString Extension); 

  功能:更改文件名的扩展名,不是对真正的文件进行改名,只是对文件名这个字符串进行处理

  参数:FileName:要改名的文件名,Extension:新的扩展名

  例:ShowMessage(ChangeFileExt("c://Winnt//SOL.EXE",".OOO"));//显示"c:/winnt/SOL.OOO"

⑻ExpandUNCFileName()
  原型:extern PACKAGE AnsiString __fastcall ExpandUNCFileName(const AnsiString FileName);

  功能:返回含有网络驱动器的文件全路径,格式为://机器名/共享名/文件名

  参数:FileName:要处理的文件名

  例:ShowMessage(ExpandUNCFileName("F://Winnt//SOL.EXE"));/*如果F:是映射的网络驱动器//NT40/WINNT,则显示"//NT40/WINNT/SOL.EXE"*/

⑼ExtractRelativePath()
  原型:extern PACKAGE AnsiString __fastcall ExtractRelativePath(const AnsiString BaseName, const AnsiString DestName); 

  功能:从文件名中抽取相对路径信息,如"../sss/ss.asd"这种形式

  参数:BaseName:基准文件名;DestName:目标文件名

  例:ShowMessage(ExtractRelativePath("D://Source//c//1.123","D://Source//Asm//dz.asm"));/*显示"../asm/dz.asm"*/

⑽ExtractShortPathName()
  原型:extern PACKAGE AnsiString __fastcall ExtractShortPathName(const AnsiString FileName); 

  功能:把文件名转换为DOS的8、3格式

  参数:FileName:要处理的文件名

  例:ShowMessage(ExtractShortPathName("E://Program Files//Dual Wheel Mouse//4dmain.exe"));/*显示"E:/Progra~1/dualwh~1/4dmain.exe"*/

⑾MatchesMask()
  原型:extern PACKAGE bool __fastcall MatchesMask(const AnsiString Filename, const AnsiString Mask);

  功能:检查文件是否与指定的文件名格式匹配

  参数:FileName:要处理的文件名;Mask:文件名格式,支持通配符

  例:ShowMessage(MatchesMask("Lxf.exe","*.?x?));//显示"true"


--------------------------------------------------------------------------------

2、文件管理函数
  这类函数包括设置和读取驱动器、子目录和文件的有关的各种操作,下表列出这类操作常用的函数及其功能。

函数 功能 
CreateDir() 创建新的子目录 
DeleteFile() 删除文件 
DirectoryExists() 判断目录是否存在 
DiskFree() 获取磁盘剩余空间 
DiskSize() 获取磁盘容量 
FileExists() 判断文件是否存在 
FileGetAttr() 获取文件属性 
FileGetDate() 获取文件日期 
GetCurrentDir() 获取当前目录 
RemoveDir() 删除目录 
SetCurrentDir() 设置当前目录 

  下面就把这些函数作一一介绍:

⑴CreateDir()
  原型:extern PACKAGE bool __fastcall CreateDir(const System::AnsiString Dir);

  功能:建立子目录,如果成功返回true,否则返回false

  参数:Dir:要建立的子目录的名字

  例:Create("ASM");//在当前目录下建立一个名为ASM的子目录

⑵DeleteFile()
  原型:extern PACKAGE bool __fastcall DeleteFile(const System::AnsiString FileName);

  功能:删除文件,如果成功返回true,否则返回false

  参数:FileName:要删除的文件名

  例:if(OpenDialog1->Execute())DeleteFile(OpenDialog1->FileName);

⑶DirectoryExists()
  原型:extern PACKAGE bool __fastcall DirectoryExists(const System:: AnsiString Name);

  功能:检测目录是否存在,如果存在返回true,否则返回false

  参数:Name:要检测的目录名

  例:if(!DirectoryExists("ASM"))CreateDir("ASM");//如果ASM这个目录不存在则创建之

⑷DiskFree()
  原型:extern PACKAGE __int64 __fastcall DiskFree(Byte Drive);

  功能:检测磁盘剩余空间,返回值以字节为单位,如果指定的磁盘无效,返回-1

  参数:Drive:磁盘的代号,0表示当前盘, 1=A,2=B,3=C 以此类推

  例:ShowMessage(DiskFree(0));//显示当前盘的剩余空间

⑸DiskSize()
  原型:extern PACKAGE __int64 __fastcall DiskSize(Byte Drive);

  功能:检测磁盘容量,返回值以字节为单位,如果指定的磁盘无效,返回-1

  参数:Drive:磁盘的代号,0表示当前盘, 1=A,2=B,3=C 以此类推

  例:ShowMessage(DiskFree(0));//显示当前盘的容量

⑹FileExists()
  原型:extern PACKAGE bool __fastcall FileExists(const AnsiString FileName);

  功能:检测文件是否存在,如果存在返回true,否则返回false

  参数:FileName:要检测的文件名

  例:if(FileExists("AAA.ASM"))DeleteFile("AAA.ASM");

⑺FileGetAttr()
  原型:extern PACKAGE int __fastcall FileGetAttr(const AnsiString FileName);

  功能:取得文件属性,如果出错返回-1

返回值如下表,如果返回$00000006表示是一个具有隐含和系统属性的文件(4+2)

常量 值 含义 
faReadOnly $00000001 只读文件 
faHidden $00000002 隐含文件 
faSysFile $00000004 系统文件 
faVolumeID $00000008 卷标 
faDirectory $00000010 目录 
faArchive $00000020 归档文件 

  例:if(FileGetAttr("LLL.TXT")&0x2)ShowMessage("这是一个有隐含属性的文件");

  与此对应的有FileSetAttr() ,请自已查阅帮助系统


⑻FileGetDate()
  原型:extern PACKAGE int __fastcall FileGetDate(int Handle);

  功能:返回文件的建立时间到1970-1-1日0时的秒数

  参数:Handle:用FileOpen()打开的文件句柄。

  例:

    int i=FileOpen("C://autoexec.bat",fmOpenRead);
    ShowMessage(FileGetDate(i));
    FileClose(i);

  与此对应的有FileSetDate(),请自已查阅帮助系统

⑼GetCurrentDir()
  原型:extern PACKAGE AnsiString __fastcall GetCurrentDir();

  功能:取得当前的目录名

  例:ShowMessage(GetCurrentDir());

⑽RemoveDir()
  原型:extern PACKAGE bool __fastcall RemoveDir(const AnsiString Dir);

  功能:删除目录,如果成功返回true,否则返回false

  参数:Dir:要删除的目录名

  例:if(DiectoryExists("ASM"))RemoveDir("ASM");

⑾SetCurrentDir()
  原型:extern PACKAGE bool __fastcall SetCurrentDir(const AnsiString Dir);

  功能:设置当前目录,如果成功返回true,否则返回false

  参数:Dir:要切换到的目录名

  例:SetCurrentDir("C://WINDOWS");


--------------------------------------------------------------------------------

3、文件I/O函数
  这类函数完成对文件的读写相关的操作,这种类型的操作和C的基于I/O文件操作类似,下表列出这类操作常用的函数及其功能。

FileOpen() 打开文件 
FileClose() 关闭文件 
FileRead() 读文件 
FileSeek() 文件定位 
FileWrite() 写文件 
FileCreate() 创建文件 

  下面就对这些函数作详细介绍。

⑴FileOpen()
  原型:extern PACKAGE int __fastcall FileOpen(const AnsiString FileName, int Mode);

  功能:打开文件,如果成功返回其句柄,否则返回-1

  参数:FileName:要打开的文件名;Mode:打开的方式,取值如下表,可用"或"("|")运算符连接。

常量 值 说明
-------------------------------------------------------------
fmOpenRead 0 以只读属性打开
fmOpenWrite 1 以只写属性打开
fmOpenReadWrite 2 以读/写属性打开
fmShareCompat 0 兼容FCB方式(汇编中有相应的DOS功能调用,感兴趣自已查阅相关资料)
fmShareExclusive 16 共享方式:以独占方式打开,在关闭以前,别人不能访问
fmShareDenyWrite 32 共享方式:拒绝写访问
fmShareDenyRead 48 共享方式:拒绝读访问
fmShareDenyNone 64 共享方式:无限制,允许读写
  例:int i=FileOpen("C://WINDOWS//Win.ini",fmOpenReadWrite|fmShareExclusive);

⑵FileClose()
  原型:extern PACKAGE void __fastcall FileClose(int Handle);

  功能:关闭打开的句柄。

  参数:Handle:要关闭的句柄

  例:FileClose(i);

⑶FileRead()
  原型:extern PACKAGE int __fastcall FileRead(int Handle, void *Buffer, int Count);

  功能:读文件,返回实际读取的字节数,句柄必须首先由FileOpen或FileCreate创建。

  参数:Handle:要读取的句柄;Buffer:存放读取的数据的缓冲区;Count:想读取的字节数

  例:char str[400];FileRead(hnd1,str,400);

⑷FileSeek()
  原型:extern PACKAGE int __fastcall FileSeek(int Handle, int Offset, int Origin);

  功能:移动文件读取指针,成功返回文件指针的位置,失败返回-1

  参数:Handle:相关联的句柄;Offset:移动的量;Orgin:移动的基准,0=文件头,1=当前位置,2=文件尾。

  例:ShowMessage(FileSeek(hnd1,0,2));//取得文件的长度

⑸FileWrite()
  原型:extern PACKAGE int __fastcall FileWrite(int Handle, const void *Buffer, int Count);

  功能:写文件,返回实际写入的字节数,句柄必须首先由FileOpen或FileCreate创建。

  参数:Handle:要写入的句柄;Buffer:存放写入数据的缓冲区;Count:想写入的字节数

  例:char str[]="I Love You";FileWrite(hnd1,str,strlen(str));

⑹FileCreate()
  原型:extern PACKAGE int __fastcall FileCreate(const AnsiString FileName);

  功能:创建文件。成功返回其句柄,否则返回-1

  参数:FileName:要创建的文件名

  例:if(!FileExists("KC.C"))hnd1=FileCreate("KC.C");
对文件重命名 C++ 读取文件下所有文件,输出所有文件的名字。。 立即下载

相关推荐

文件、文件夹重命名

重命名文件或者文件夹,有需的可以下载

【C++】获取文件夹下所有文件名并重命名

1. `GetAllFileName()`获取指定路径下所有文件的名称 2. `ReplaceFileName()`根据指定字段的替换,重命名所有符合条件的文件名

AAADiao的博客 4171

C++ 文件操作类(拷贝、删除、移动、改名)

C++ 文件操作类(拷贝、删除、移动、改名)~

文件操作——修改文件名

修改单个指定文件名称 在C++中对文件的操作是通过fstream类来实现的,使用这个类,就必须引用<fstream>的头文件,以下对文件名称修改所需要的函数和成员进行介绍。 文件流 ifstream 文件写操...

m0_67555362的博客 8453

centos7下100T存储扩容(LVM)至150T

查看新增磁盘情况lsblk,fdisk -l [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 4.2G 0 rom vda 252:0 0 80G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2

tiyager的博客 1025

C++ 程序稳定运行一段时间后异常中止?vc6 运行库的bug!!!

事件查看器提示:错误应用程序 xxxxxxx.exe,版本 0.0.0.0,错误模块 MSVCRTD.DLL,版本 6.0.9782.0,错误地址 0x00012b40。这是一个通信方面的软件,需要长期运行,在压力测试时,高负荷连续运行一定天数时必定崩溃,而且都是在msvcrtd.dll中崩溃。后来在dump文件中发现调用栈在是MSVCRTD.DLL模块,跟踪代码发现是在void * __cdecl _heap_alloc_dbg(        size_t nSize,        int nBloc

qingflying的专栏 2680

C++实现批量文件重命名

C++实现文件夹中文件按索引值重命名

神奇的大喵 2898

微信小程序 实现拼图功能

微信小程序 实现碎片拼图

weixin_45689786的博客 2251

VC修改C++工程名称的方法

A工程---改名为---》工程B    建模板:    1。新建-》工程-》选Custom AppWizard.    (不选MFC AppWizard (exe))模板名字可以随意起如mytemp,    2。弹出框里选-》an existing project    3。下一步,浏览添加要改的工程的.dsp文件:A.dsp。    4。编译,VC就生成了自定义的模板。可以从myte

LiangHC 1万+

ArcGIS实战:地形湿度指数(TWI)计算全流程解析

本文详细解析了ArcGIS中地形湿度指数(TWI)的计算全流程,从DEM数据获取、填洼处理到水流方向与汇流累积量计算,最终实现TWI的精准计算。通过实战步骤指导,帮助读者掌握水文建模和土壤湿度预测的关键技术,适用于农业规划、生态研究等领域。

weixin_29231725的博客 872

Q学习(Q-learning)入门小例子及python实现

一、从马尔科夫过程到Q学习 # 有一定基础的读者可以直接看第二部分 Q学习(Q-learning)算法是一种与模型无关的强化学习算法,以马尔科夫决策过程(Markov Decision Processes, MDPs)为理论基础。 标准的马尔科夫决策过程可以用一个五元组<S,A,P,R,γ>表示,其中: S是一个离散有界的状态空间; A是一个离散的动作空间; P为状态转...

wlm_py的博客 4万+

BCB中的文件操作

BCB中的文件操作;C++ Builder 中可以实现文件操作的各种方法。

whjlaile的博客 2174

Synopsys工具filter命令:从数据筛选到高效IC设计的实战指南

在数字集成电路设计流程中,数据筛选与查询是工程师处理海量网表、时序报告和设计约束的核心需求。其原理在于通过声明式查询语言,直接对设计对象(如单元、网络、路径)的属性进行逻辑判断与模式匹配,从而精准定位目标。这种技术价值在于将工程师从繁琐的过程式脚本循环中解放出来,大幅提升代码可读性与运行效率,直接调用工具内置的高性能查询引擎。在实际应用场景中,它广泛用于物理与时序联合分析、层次化模块操作、动态约束生成以及自动化报告生成。本文聚焦于Synopsys工具链中filter命令的高阶用法,深入解析其表达式语法、正则

weixin_28007513的博客 577

C及所派生的众语言和平台关于文件操作之系统介绍

CBuilder的文件操作(1)       在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;4、基于BCB库的文件操作;5、特殊文件的操作。这次我首先写出第一篇,以后我会陆续写出其它部分在我主页中发表。 壹

guoduhua的专栏 1033

接入 AI 之后,为什么测试和排障还是没有真正变快?

如果你们准备做平台型 AI,不要先从聊天入口开始想。先把真实数据采上来;再把链路、版本、快照、报告这些核心对象建稳;再把历史沉淀、反馈、检索能力补齐;最后再让 AI 围绕这些对象去工作。这样做出来的 AI,才更容易从“看起来聪明”走向“真正省时间”。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 527

Unity Hololens2开发|(三)工程发布及真机部署(3种方法)

选择项目->属性,进入项目属性页,选择调试,将HoloLens2的IP地址填写至页面,如下图。确保HoloLens2与计算机在同一网络下,并保持开启状态,点击运行,即开始生成部署.注意:该方式不支持覆盖安装,如果重复安装同一个App,需要先卸载再安装!选择Release下的ARM64,选择远程计算机,如下图。

游戏开发小Y的博客 14万+

bcb中的文件操作

转自 http://blog.youkuaiyun.com/yedezhanghao/article/details/6782965 一、流式文件操作   这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedef struct { int level; /* fill/empty level of buffer */ unsigned flags; /* File

姚银的专栏 2560

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

c:\program files\borland\cbuilder6\bin\bcb.$$$ 重命名为c:\program files\borland\cbuilder6\bin\bcb.dro

 c:\program files\borland\cbuilder6\bin\bcb.$$$ 重命名为c:\program files\borland\cbuilder6\bin\bcb.dro 管理员权限

本博客仅供免费阅读,不提供咨询服务。请勿私信。 1500

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

CBuilder 教程 1- 多输入加法器

本章将详细介绍RSCAD FX中组件构建器(CBuilder)模块的简单使用。CBuilder模块允许用户为RSCAD创建自己的组件。CBuilder FX包含一个转换实用程序,可以将在旧版本的RSCAD中创建的CBuilder组件转换为RSCAD FX。在本教程章节中,用户将构建一个可以对两个或三个输入进行加减的加法器组件。这个加法器将能够接受实型输入。

rtdsim的博客 1254

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CBuilder中的String

旧版本的CBuilder中,String类映射为AnsiString,在2009/2010以后的版本中,String类被映射为UnicodeString,但仍然保留AnsiString类型。将String转为字符串指针需要注意: AnsiString只有一个.c_str()方法,返回char * UnicodeString有三个方法: .c_str() 返回wchar_t * (这个可能

zwd183335的专栏 934

CBuilder 教程 3- 可变电容器

该元件将在CBuilder中建模为电力系统元件。控制系统元件使用控制型输入和输出信号与其他元件交互,不直接与电力系统网络的求解交互。另一方面,电力系统元件需要与电力系统网络的求解直接交互。接口通常是通过在元件连接的节点上指定阻抗并向这些节点提供电流注入来实现的。

rtdsim的博客 1255

(32)uniGUI for cBuilder下如何动态创建控件

(中行雷威2019.5.30) (同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943、860634510、299497712,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。) 【阅读倡议...

路在脚下 1243

Cbuilder一定要包含有UnitN.cpp

Cbuilder一定要包含有UnitN.cpp

lixiaofan123456的博客 326

CBuilder 教程 4- 发电机励磁控制器

DC1型励磁器需要来自发电机模型的实数类型输入。两个需要的输入是发电机终端标幺值形式的电压(Vpu)和发电机转速(W)。可选的实型的电力系统稳定器输入和负载补偿输入。励磁器模型产生发电机所需的励磁电压输出(Ef)。

rtdsim的博客 1334
上一篇: 将窗体从属于主窗体
下一篇: 在Delphi中显示Windows图标
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值