明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2228|回复: 9

[提问] 求一个函数:用于处理文件名路径含空格

[复制链接]
发表于 2013-11-29 15:52 | 显示全部楼层 |阅读模式
本帖最后由 illcyt 于 2013-11-29 15:56 编辑

    大家都知道,启动一个应用程序可以用(startapp)来实现,但是使用过程中发现一个问题,以打开pdf为例说明:
1、添加“桌面”的路径至cad文件搜索支持路径里中,如下图:



2、pdf文件在电脑桌面上,此时,若使用(startapp)来启动pdf文件
  1. ;;示例1:
  2. (startapp "JisuPdf.exe" "C:\\Documents and Settings\\Administrator\\桌面\\AutoLISP&DCL基础篇(高清版).pdf")


  3. ;;示例2:
  4. (startapp "JisuPdf.exe" "C:\\Docume~1\\Administrator\\桌面\\AutoLISP&DCL基础篇(高清版).pdf")
复制代码
3、加载示例1代码时会出现错误:




4、加载示例2代码时会则可以正常打开pdf文件:



(以上测试的JisuPdf.exe为绿色版,且在cad文件搜索路径下



【求函数】可实现将自动搜索文件路径是否带空格  如:Documents and Settings  (常用的包括Program Files)等等,若有空格则将其转换为Docume~1 (Progra~1),并返回转化后的路径,不胜感激!!





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2013-11-30 00:07 | 显示全部楼层
求高手解答,难道要这么沉下去了?非常感谢!!
发表于 2013-11-30 12:52 | 显示全部楼层
(startapp "JisuPdf.exe" (findfile"AutoLISP&DCL基础篇(高清版).pdf"))行不行呀?
发表于 2013-11-30 15:01 | 显示全部楼层
自贡黄明儒 发表于 2013-11-30 12:52
(startapp "JisuPdf.exe" (findfile"AutoLISP&DCL基础篇(高清版).pdf"))行不行呀?

多数不行。
只接受“xxxxxx~1”这种文件名的程序多数是在早期的DOS平台下开发的(有些是部分移植到后来的各版本Win平台),他们只接受当时的八位文件名,即使不含空格,也不认识超过八位的长文件名。
为解决这个问题,windows会替这些程序吧长文件名解释成xxxxx~1的形式,最后一个数字是自动顺序排列的,没有试过自己改名,但很可能自己把长文件名替换成xxx~1这种模式,程序也未必会认。
所以,彻底解决问题的办法不是写程序,而是用跟上发展的软件。
 楼主| 发表于 2013-12-1 14:21 | 显示全部楼层
ll_j 发表于 2013-11-30 15:01
多数不行。
只接受“xxxxxx~1”这种文件名的程序多数是在早期的DOS平台下开发的(有些是部分移植到后来 ...

首先感谢回复

按照你的想法我试了一下
首先在D盘新建了一个名称为“testfilemynameisverylong”的文件夹,其超过8个字符,分别在文件家里放置两个不同的文件,一个文pdf文件,一个为chm文件。


测试代码如下:
  1. (startapp "JisuPdf.exe" "D:\\testfilemynameisverylong\\地震动谱分析入门 第二版.pdf")


  2. (startapp "hh.exe" "D:\\testfilemynameisverylong\\建筑工程抗震设防分类标准.chm")
复制代码
经过测试,pdf文件打开异常



而chm文件则可以正常打开



这么以来,同样是(startapp)函数,打开不同类型的文件对路径的要求不一致,猜测可打开的应用程序有关系?那这样又如何解决呢,另外也测试了,在注册表里找到office程序路径,打开带空格的路径下的文件也有同样的问题,是否有高手能提供解决的思路呢,求教!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2013-12-1 16:27 | 显示全部楼层
illcyt 发表于 2013-12-1 14:21
首先感谢回复

按照你的想法我试了一下

不是pdf和chm的问题,而是急速pdf阅读器的问题,不妨上网看看这个软件是否有更新版本,没有的话,找一个其它的替代程序。
 楼主| 发表于 2013-12-1 21:17 | 显示全部楼层
我试了最新的福新pdf软件,还是不行

不知道你是否有支持全文件名的pdf软件推荐,试试看
发表于 2013-12-1 22:02 | 显示全部楼层
1,用open建一个bat文件,
2,用DOS把PDF文件备份到D:\; 或者用DIR加S加重定向再生成文件;应该会带~的路径
3,用startapp执行BAT文件

我觉得JISUPDF不是windows系统文件,调用时应该要加路经

以上只是设想,没实际操作
发表于 2013-12-2 11:10 | 显示全部楼层
看看系统中的环境变量 用%USERPROFILE% 试试看能不能代替用户文件目录。
 楼主| 发表于 2013-12-2 17:16 | 显示全部楼层
liu22737 发表于 2013-12-1 22:02
1,用open建一个bat文件,
2,用DOS把PDF文件备份到D:\; 或者用DIR加S加重定向再生成文件;应该会带~的路径 ...

JISUPDF这个是为了省事下了个绿色版的,并且放置搜索路径下了的,所以调动可以直接(startapp)

你的想法我试试看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 20:37 , Processed in 0.374331 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表