代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Delphi
】
把短文件名(dos 8.3)转换成长文件名
作者:
jellyvice
/ 发布于
2013/12/3
/
921
function ShortToLongFilePath(const FilePath: string): string; var PrevPath: string; // path before last file/dir in FilePath ExpandedName: string; // long form of file name SR: SysUtils.TSearchRec; // record used by file find functions Success: Integer; // indicates success in finding a file // --------------------------------------------------------------------------- function CountPathDelims(const Name: string): Integer; {Counts path separators in given name} var Idx: Integer; // loops thru name string begin Result := 0; for Idx := 1 to Length(Name) do if SysUtils.IsPathDelimiter(Name, Idx) then Inc(Result); end; function IsServerName(const Name: string): Boolean; {Returns true if Names is in form \\Server\Share} begin Result := (SysUtils.AnsiPos('\\', Name) = 1) and (CountPathDelims(Name) = 3); end; // --------------------------------------------------------------------------- begin // Check if we have a drive, server/share or root path, and exit if so // (we can't apply file search to any of these, so we return them unchanged if (FilePath = '') or (FilePath = '\') or ((Length(FilePath) = 2) and (FilePath[2] = ':')) or ((Length(FilePath) = 3) and (FilePath[2] = ':') and (FilePath[3] = '\')) or IsServerName(FilePath) then begin Result := FilePath; Exit; end; // Do a file search on file: this is used to expand name Success := SysUtils.FindFirst(FilePath, SysUtils.faAnyFile, SR); try if Success = 0 then ExpandedName := SR.FindData.cFileName else ExpandedName := ''; finally SysUtils.FindClose(SR); end; // Check if there's any part of path we've not handled, and convert it if so PrevPath := SysUtils.ExtractFileDir(FilePath); if PrevPath <> '' then begin // We have unprocessed part of path: expand that Result := ShortToLongFilePath(PrevPath); // Appended currently expanded name to path if (Result <> '') and (Result[Length(Result)] <> '\') then Result := Result + '\'; Result := Result + ExpandedName; end else // No earlier parts of path: just record expanded name Result := ExpandedName; end;
试试其它关键字
长文件名
同语言下
.
多边形面积
.
限定软件使用时间
.
获取磁盘空间大小
.
窗口文字淡入淡出渐变效果
.
创建开机启动项
.
检测并枚举系统安装的打印机
.
实现保存和读取图片
.
字符串分隔函数
.
将BMP格式图形转化为JPG格式
.
解析FTP地址
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
jellyvice
贡献的其它代码
(
28
)
.
返回双精度浮点数数组的最大值2
.
返回一个双精度浮点数数组的最大值
.
检查指定数字是否是质数
.
两个数的最大公约数
.
把一个缓冲区里的字节输出成16进制表示格式
.
Graphic转换成Bitmap
.
获取一个图标或光标的热点位置
.
返回Gif图片的尺寸
.
返回指定bitmap图片的尺寸
.
检查系统中是否包含指定的字体
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3