说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何压缩较长的全路径文件名中的路径 (Path) 字串长度?

HTML文档下载 WORD文档下载 PDF文档下载
VB如何压缩较长的全路径文件名中的路径 (Path) 字串长度?
版本:VB6 / VB5 / VB4-32


或许您看了上面的标题之后,不知道是什么意思,不过,我想您只 要看了下面的说明就会有恍然大悟的感觉了!

压缩前的全路径文件名:
C:\MyFolder\VisualBasic\MyReallyWayTooLongFolderName\ButWhoCares\IhaveTheAPI.doc
压缩后的全路径文件名:
C:\MyFolder\VisualBasic\MyR...\IhaveTheAPI.doc

知道上面标题的意思了吧!这种技巧在很多安装软件中都可以看到,它有几个特色:

1、文件名称完整不变。
2、只縮短路径 (Path) 部份字串。
3、可事先设定压缩后的全路径文件名的最大长度。

或许您会认为这有什么困难?用一些字串处理的函数,例如:Mid$、Left$.... 等就可以做到了!没错。

但是,您知道吗?由于 Microsoft 很多安装软件都会用到这个功能,所以它也有提供一个 PathCompactPath API,它是放在 shlwapi 这个 DLL 文件中。

Declare Function PathCompactPath Lib "shlwapi" _
Alias "PathCompactPathA" (ByVal hDC As Long, _
ByVal lpszPath As String, ByVal dx As Long) As Long

它需要三个引数,说明如下:

hDC:device context handle。
lpszPath:the address of the pathname。
dx:the width in pixels of the spot in which you want the pathname to fit。

來看看实际的例子吧!请在表单中加入一个 CommandButton 及一个 Label,不用更改任何属性,將以下的程序代码复制到表单中:

Private Declare Function PathCompactPath Lib "shlwapi" _
Alias "PathCompactPathA" (ByVal hDC As Long, _
ByVal lpszPath As String, ByVal dx As Long) As Long

Private Sub Command1_Click()
Dim lhDC As Long, lCtlWidth As Long
Dim FileSpec As String

lhDC = Me.hDC
FileSpec = "C:\MyFolder\VisualBasic\MyReallyWayTooLongFolderName\"
FileSpec = FileSpec & "ButWhoCares\IhaveTheAPI.doc"
Me.ScaleMode = vbPixels
lCtlWidth = Label1.Width - Me.DrawWidth

PathCompactPath lhDC, FileSpec, lCtlWidth
Label1.Caption = FileSpec
End Sub
记住 Label1 的宽度不要太大,如果 Label1 的宽度本來就放得下全路径文件名,那就沒有必要压缩全路径文件名了!
迪游信息科技CEO张晓雷:中日游戏面面观 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉! 微信公众平台开发——如何保证access_token长期有效? 拼的就是速度!超快HTML5 2D渲染引擎Pixi.js 一周消息树:百度“涉黄”遭警告,网盘内容审核的四种方式 微信开发商现状调查:接口限制成主要困扰 行业需求多样是最大难点 小米:海外扩张需谨慎,信息安全或成最大掣肘 AMD FX系荣耀归来 或成大众新宠! 脑洞大开:《80天环游地球》同名游戏诞生记 2014微信开发者大会 最后30个参会名额! 林仕鼎创业产品“云校”正式上线:让教育个性化、多元化、均衡化 14岁少年开发者:伍兴云的智能家居“梦” Xcode 6 Beta 6发布闹乌龙,着重改进Swift语言 当API遇到云平台,开发者面临的新抉择! 《近匠》欧朋流量宝,工具类应用开发之道 《近匠》Bmob:免费无限制的公有云服务 MDCC应用征集最新动态:3D手游成热点、硬件种类丰富 闪迪Ultra II SSD:采用TLC闪存,最低价为79.99美元 现有技能不浪费!基于Titanium的跨平台游戏引擎Platino 跳过开发者,专注补Bug的iOS 8 Beta 6悄然发布 集群管理可以很简单,Google又放大招 应用内直接打车:Uber面向第三方开发者开放API 百万美元巨奖!英特尔启动感知计算挑战赛 IBM 2014技术峰会在京开幕! OpenGL 4.5规范标准发布,大大提升API性能! 更萌更贱:Flappy Bird开发者推虐心新作Swing Copters 学习的革命:AR增强现实遇到儿童应用 颠覆旧概念,IBM Bluemix开启云开发时代 专访企业QQ SaaS团队,谈企业级LNMP架构设计 《近匠》Coding:将软件开发搬到云上 小米与美视频游戏服务Ouya合作 进军国内客厅 请问编一个WINDOWS画笔 谁有c434009A主板的驱动程序。 请问在windows下如何实现像数据库一样的读、写锁? 为啥我在InstallShield中调用DLL中的函数总是出错呢? 如何能在HTML控件显示区域显示“....(指定的文件名)不存在”? 请问如何把TIF格式转换成JPG或GIF的格式?? 代理不能定时执行,请指教,谢谢。 怎样与外部数据库建立联合查询? 如何接受来自vbscript的字符数据列表 怎么在Gtk+的gnomemessagebox显示中文? (在线等待,急!)在vc中怎么使用datagrid控件 我使用的是odbc访问数据库 好急的问题,有关于SMS的接收字符处理问题,想了好几天没有结果 那位兄弟手头上有ASP.NET高级编程的电子书? DataGrid 控件问题,帮帮我把,朋友! automount? 一个比较难的问题! 关于datagrid的问题 在线等待 在cmd编辑器中用java运行已编译的文件运行不成功怎样解决 各位帮我解决一下这个问题!!!谢谢 关于ResourceManager的疑惑? 两台机器无法访问? 大家有没有听说过zebudom.js这个javascript的API?请问哪里可以下载它? 模块的连接 如何用php开发一个在线语音聊天室? 请问:有谁能提供Microsoft Project 2002简体中文专业版下载地址????急用!!!!!! 《The C++ Programming Language》有没有中译版? 请高手帮我看看: session的范围 硬件加、解密卡合作 请问那里能下到C或者C++的编译环境? 我的网页做好了,在我自己的机子上显示的很好看,在别的机子上有的显示的和在我的机子上显示的一样,很不错,但在有些机子上显示就变形了 怎样在文件中查找指定的字串? 为什么这两个查询都不能运行呢? 请教有关比对数据库的思路 运行结果出错!!!!!!!!!! google主页的问题(在线) (在线等待,急!)对话框中画图,超过了对话框大小,但是滚动条不能用 jbuilder7+jboss的配置问题? 求教:用UML做分析设计工具、用JAVA开发的一个办公管理系统的详细时间节点计划书。 數據庫數據顯示問題///急,在線等!!!!!個位幫幫忙? 讨论一下,eregi和strpos 为什么这两个查询都不能运行呢? 集成多文件夹操作窗口的软件有吗?有的请发QQ;6138215 怎么获得checkbox组中被选中的部分? sybase表中有没有自动编号的字段啊? 问一个很菜的问题?(在线等……) DOMINO的B/S开发:如何自动更新一页面中的多分类新闻标题AS WWW。WXRB。COM 如何用一根电话线让两台电脑同时上网 急!!“SQLserver不存在或访问被拒绝”怎末回事? 有没有防止关于用户未经登陆,直接访问的好办法,和思想?仁者见仁! 吃一垫,真能长一智吗 如右图,某小区规划在长32米,宽20米的矩形场地如图,某小区规划在长32米,宽20米的举行场地ABCD上修建三条同样宽的小路,使其中两条与AD平行,一条与AB平行,其余部分种草,若使草坪的面积为566M 英语翻译I'm sorry I didn't send you a card till now cauze it took me quite a few days to figure out what you wrote in your self introduction.anyway,i hope you like this card,it's about a famous mountain in Hunan province.and I WONDER If you could 吃一埑,长一智.的教育意义是什么? 谁认识这树?就是结这个果子的树 “三面红旗会甘肃”有何历史意义? “古城遵义”在党的历史上发生过什么重大事件?其意义是什么? 吃一垫,长一智. 谁认识这是什么树树枝和树杆都是弯弯曲曲的再传一张 邀请别人的用语(英语) “三下乡”社会实践是哪一年开始的 作为教师你感到最大的压力是什么? 写一个神话故事主要内容,要简介 英语翻译要写在简历里的 务必要准确 英语翻译再求帮忙写一篇以这个为题目的英文演讲稿,二百单词左右 邀请别人的英语用语(急!) 我要名人求学的例子,或有关于求学的名言.急, 什么是《琵琶行》全诗的主旨,更是诗人与琵琶女感情的共鸣. 临危不惧.勇往直前.等的成语有那些?是五年级上册的语文书里的成语. 是吃一堑,长一智,还是吃一蜇,长一智呢?麻烦知道的回答一下. 求教,我语文不好, 翻译成中文:Bachelor film project 2012 from The Animation Workshop. 英语翻译Courage is the ladder on which all the other virtues mount.还有这句Despite all the life danger,with one selfless act from one common person,someone is saved,A hero is made. 请问猪能上树吗? 爱的教育中体现了哪些种情感 culture smart or science intelligent原创文章!明天就要用! 英语翻译HINWEISE ZUR FESTSTELLUNGSPRüFUNG:Die Feststellungsprüfung erfolgt nach folgenden Kriterien:1.künstlerische Gestaltungsf?higkeit2.Realisierungsf?higkeit in den gew?hlten künstlerischen Medien3.künstlerische Konzeption und Intensit?tD 腊八粥 阅读题腊 八 粥冰 心从我能记事的日子起,我就记得每年农历十二月初八,母亲就给我们煮腊八粥.这腊八粥是用糯米、红糖和十八种干果掺在一起煮成的.干果里大的有红枣、桂圆、核 真情树 读后感 请问有人知道幼儿园中班舞蹈课课教案要怎么写哟?有点急,打心底麻烦各位蓄 如何形成一个团结的班风在高中当班长很窝囊 斯大林信基督吗?俄国人不都是信天主教么,但他(斯大林)是共产主义者,是不是无神论?请懂的回答 参加辩论赛,需要的条件. 窃读记作者怎样窃读以及作者的心情 有人看过如果树知道么,有什么感想 拜托看下幼儿园中班舞蹈课课教案要怎么写哟?我想知道到,打心底麻烦给位朋友了锈 《窃读记》作者为了窃读不被赶,有哪些方法? 我相信有神 但我却不信奉神 这算是有神论还是无神论我相信神是因为我觉得神只是比一般人强的人或生物,所以我也不信奉神 英语翻译谁知道有什么德语翻译工具可以翻译整页或整篇文章的 ,一段一段的也可以.急用 《爱的教育》英文的读后感一百字左右,要有中文翻译 culture smart or science intelligent?用这个作演讲题目,着重说哪方面比较新颖啊?演讲内容是必须在culture smart和science intelligent两者中选一个来讲,还是可以说他们都很重要,相互依靠之类的? 英语翻译演出加油、中文4个字?德语这么长?能不能请1L的翻译下你写的? 为什么很多著名的科学家信仰上帝我一直很纳闷的是为什么很多西方人都相信有上帝,尤其是一些在科学界取得过重大发现的科学家,他们的科学知识一定要比我们多得多,那为什么还会相信上 请高手帮忙解析culture smart or science intelligent这个是2009年CCTV杯的题目 我拿去问来自美国的外教 她说这个题目有错误 她从来没见过culture smart的说法 从这个短语的结构到较为深层的含义 尽可 我都迷茫了, y=根号(ax2-ax+1)的定义域是R,则实数a的取值范围是 上上月书面语怎么说 电机互锁的问题6台电机设M1-M6要求依次从M6到M1 互锁 (M6工作才能使M5工作 , M5工作才能使M4工作.)高手帮我弄个电路图啊 谢谢降序使用辅助常开触点即可实现。。。 这个我也不会啊 选辩论题目,应遵守什么样的标准? 吃一欠长一智什么意思? cultural smart or science intelligent 孝代表的意思 吃一寸 长一智什么意思 杭金衢高速公路义乌出口有几个,分别是…能说清楚具体位置最好,就是杭金衢高速公路义乌下来后会经过什么路… 孝字有什么象征吗?西递敬爱堂中为朱熹所书.形态. 请教下仿一本男孩子必读的书写钢铁是怎样炼成的读后感J我想知道到,我在此先谢谢大伙了7dX ,某小区规划在长32米,宽20米的矩形场地上修建三条同样宽的3条小路,使其中两条与AB平行,另一条与AD平行,要使小路的宽为2m,那么剩余的耕地面积为多少平方米 有什么词可以来表示孝善美的 人为什么要吃一垫才会长一智?不是有句古话;"吃一垫.长一智"人为什么要吃一次亏才会长一智呢?###不吃亏就长不了智了吗?$$$有时的一次亏会让你损失很多!我就以这为例:我在盛大以保中被骗 某小区规划在长4米,宽26的矩形场地上修建三条等宽的小路,其中两条与宽平行,一条与长平行,其余种草,草地面积为144平方米,求小路的宽 有谁能告诉我孝鼓节奏?用符号表示出来,最好能文字说明一下孝鼓就是村中有老人去世,晚上唱丧歌打的鼓 外交部:中印签署边防合作协议有利于巩联合国难民署高专:慷慨的叙利亚人民理外交部:日方无论采取何种手段都无法改外交部:中印签署边防合作协议有利于巩中国西部对欧洲国家吸引力增强高铁建设将带动泰国二线城市房价上涨金华开展消防排查整治行动 整改火灾隐浙江遂昌一男子为谋私利 盗挖珍贵植物第十七届宁波国际服装节:展东方品牌魅外媒:中国正“秘密”储备黄金 西方大中新论坛:中国需转变发展方式 避免中莫斯科将优化投资环境吸引私人投资普京称筹备第二次日内瓦会议是外交共同乔治小王子洗礼袍仿1841年维多利亚普京称筹备第二次日内瓦会议是外交共同乔治小王子洗礼袍仿1841年维多利亚澳洲青睐中国游客 维多利亚州长在沪“浙江海事局下放海员证和油污保险证办理中方回应日本涉钓鱼岛视频 促其停止挑云南晋宁群体性事件致多名民警受伤 事马尼拉市议员抵港要求约见香港保安局官大概因为有了猪八戒,《西游记》才把食英达高希希接任视频大赛评委聂远:赵怀安打得更潇洒减肥那些事儿“高校英才培养计划”华商学院开启第一郭采洁:希望30岁前结婚,在状态最好谭维维新专辑诠释“温柔摇滚”“全球华人新秀歌唱大赛”川妹子郑兴琦“好声音”唱响广州城“很多移民葡萄牙的人去法国打工,送孩多明戈爱徒张英席中山开个唱当博伊斯遇上沃霍尔贝克汉姆载长子又出车祸黄耀明逼老妈接受“男男恋”4个型男追谢娜,她会选择谁?市一中建校85周年这里走出了刘斯奋和周秀娜有性感更有演技专家论彩水星与海王星形成合相会给人们带来灵感千万人群健身排舞大赛落幕灾后重建第一案:大学党委书记苏智先的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘