ExtractFileDir 与 ExtractFilePath 的差别

ExtractFileDir 从文件名称中获取文件夹名(文件不在根文件夹下时取得的值后没有“/”,在根文件夹时一样,都是盘符,比如“C:/”)  
ExtractFilePath 从文件名称中获取路径名(文件不在根文件夹下时取得的值后有“/”,在根文件夹时一样,都是盘符,比如“C:/”)

函数的声明:

function ExtractFileDir(const FileName: string): string;

function ExtractFilePath(const FileName: string): string;

能够把以下的语句放入程序中执行后看结果:

ShowMessage(ExtractFileDir(‘C:/Borland/Delphi/Test.exe‘));

执行结果: 

ShowMessage(ExtractFilePath(‘C:/Borland/Delphi/Test.exe‘));

执行结果:

ShowMessage(ExtractFileDir(‘C:/Test.exe‘));

执行结果:

ShowMessage(ExtractFilePath(‘C:/Test.exe‘));

执行结果:

时间: 2025-01-03 02:27:12

ExtractFileDir 与 ExtractFilePath 的差别的相关文章

delphi 获取可执行文件的当前路径

在Delphi SysUtils 单元中有 ExtractFileDir 与 ExtractFilePath两个类似的函数, 两个函数有以下的区别: ExtractFilePath 传回值的最後一个字元是反斜杠“/”. ShowMessage(ExtractFileDir(Application.Exename)); // 返回值为 c:/temp ShowMessage(ExtractFilePath(Application.Exename)); // 返回值为 c:/temp/ 相同点: 如

清华校长陈吉宁最新演讲:平庸与卓越的差别

本文是清华大学陈吉宁校长于在 2015 年第一次研究生毕业典礼暨学位授予仪式上的讲话,原文标题:选择与坚持.演讲非常精彩,值得您细细阅读. 亲爱的同学们: 今天,共有 1318 名同学获得博士.硕士学位.首先,我代表学校,向同学们奋力拼搏完成学业表示祝贺!同时,向悉心指导你们的老师.辛勤培育你们的家人和一路支持你们的亲友,致以诚挚的敬意和衷心的感谢! 最近我一直在思考,在今天这个场合,给大家讲点什么.大家知道,在过去几次毕业典礼上,我曾经讲过理想.担当.良知.敬畏等这样一些关于价值信念的话题,勉

offsetTop和scrollTop的差别

近期想写个组件,结果被这两个属性搞的有点晕,查了下文档和资料,对这两个属性总结例如以下: 一直以来对offsetLeft,offsetTop,scrollLeft,scrollTop这几个方法非常迷糊,花了一天的时间好好的学习了一下.得出了下面的结果:1.offsetTop     :当前对象到其上级层顶部的距离.不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性. 2.offsetLeft    :当前对象到其上级层左边的距离.不能对其进行赋值.设置对象到页面左部的距离请用s

JAVA与C++,C与C++的差别

首先来分析JAVA与C++的差别: JAVA是纯面向对象的语言,而C++是基于面向对象过程的语言. JAVA有着垃圾回收机制.它的语法是C++的子集,即JAVA有的C++都有.而C++有的JAVA不全有. JAVA也分内置类型和自己定义类型.在局部开辟空间,赋值之后才干使用.JAVA的类型都视为对象.无运算符.无自增自减操作,把运算符当作函数 JAVA还有垃圾回收机制.反射机制. 接着分析C与C++差别: C仅有成员变量,没有方法之说:而C++有自己的成员变量和成员函数: 后者有引用,函数重载.

多进程与多线程差别

 在Unix上编程採用多线程还是多进程的争执由来已久,这样的争执最常见到在C/S通讯中服务端并发技术 的选型上,比方WEBserver技术中.Apache是採用多进程的(perfork模式,每客户连接相应一个进程,每进程中仅仅存在唯一一个运行线程), Java的Web容器Tomcat.Websphere等都是多线程的(每客户连接相应一个线程,全部线程都在一个进程中). 从Unix发展历史看,伴随着Unix的诞生进程就出现了.而线程非常晚才被系统支持,比如Linux直到内核2.6.才支持符合P

synchronized与static synchronized 的差别、synchronized在JVM底层的实现原理及Java多线程锁理解

本Blog分为例如以下部分: 第一部分:synchronized与static synchronized 的差别 第二部分:JVM底层又是怎样实现synchronized的 第三部分:Java多线程锁,源码剖析 第一部分:synchronized与static synchronized的差别 1.synchronized与static synchronized 的差别 synchronized是对类的当前实例进行加锁,防止其它线程同一时候訪问该类的该实例的全部synchronized块.注意这里

java基础之get和post的差别

上篇博文讲到HTTP协议,本篇介绍HTTP请求方法中get和post的差别: 首先,最明显的一点表象上的差别:GET 方式.将请求參数附加在url之后,POST将请求參数附加在请求头的最后 以下具体说明一下二者的差别: 1.表单的method属性假设是get,那么全部的參数信息都会显示在浏览器的地址栏里面,当我们使用浏览器地址栏输入网址的方式来发送请求时,那么该请求一定是get方式. 2.对于get方式.底层是将全部參数附加在请求资源的后面一起传递的 对于post方式,底层是将全部參数附加在请求

ANDROID PAD版本号 PHONE版本号 源代码有什么 差别?

ANDROID PAD版本号 PHONE版本号 源代码有什么 差别? 直接把frameworks/base/core/res/res/values/config.xml里面的<bool name="config_voice_capable">false</bool>改为false <!-- Flag indicating whether the current device is "voice capable". If true, th

AfxMessageBox和MessageBox差别

假设用MFC的话,请尽量使用afxmessagebox,由于这个全局的对话框最安全,也最方便.   可是在WIN32 SDK的情况下仅仅能使用MESSAGEBOX. MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox(). afxmessagebox很多其它的时候是用于调试AfxMessageBox 比 MessageBox 方便!    MessageBox 比 AfxMessageBox 灵活