&039---------------------------------------------------------------------------------------
&039;模块 ;:模块get_hyperlink_cut_sheets
&039;日期时间:2009年1月5日13:21;作者 ;:标记;目的 ;:该程序将对当前图形模型空格块进行排序      ;:并找到PDF剪切表的任何相关超链接,然后移动该剪切      ;:将图纸复制到路径v:\Current\u Project\Cut Sheets\ Directory
&039---------------------------------------------------------------------------------------
选项显式 ;Dim objBlock As AcadBlockReference作为对象块参考 ;模糊对象作为身份 ;暗colHyps作为AcadHyperlinks ;将fso设置为文件系统对象 
 
 ;设置fso=New FileSystemObject 
&039'“以下”;如果…那么…如果结束“;不执行您想要的操作(删除文件夹中的所有PDF文件)
&039'原因是您没有将有效的文件名传递给fso。DeleteFile()方法:没有文件可以是
&039'命名为“*”。pdf;。fso。DeleteFile()一次只删除一个文件。它不会通过接受删除所有文件'类似于*.pdf的通配符文件名模式。您需要反复使用call Dir(path.\*.pdf)获取每个
&039'PDF文件名并逐个删除
 ;If Len(Dir(ThisDrawing.Path.\Cut Sheets\*.pdf))<&燃气轮机;然后为0 ' 检查当前项目剪切表中是否有任何PDF   ;fso。删除此绘图文件。路径(&P)&引用;\剪切纸张\*。pdf“;,正确   ' 如果有,请将其删除 ;如果结束 
 ;对于本图纸中的每个对象。模型空间   ;如果对象的类型是AcadBlockReference,则     ;设置objBlock=objEnt     ;设置colHyps=objBlock。超链接'这是”的典型用法;错误恢复时;,它向您隐藏错误'因为您没有在代码中确定您肯定会获得有效的文件名'从超链接#039;的Url。自fso以来。复制文件可能会失败(它确实失败了),您应该处理
&039'可能的错误     ;出错时继续下一步     ' 如果我们遇到任何不';T有超链接'假设您确实从Url中获得了有效的文件名(您可以添加“Debug.Print colHyps.Item(0)”。URL“
&039'为了验证您是否始终有一个好的文件名),这里,第二个参数传递给fso。FileCopy()'方法肯定是错误的:您无法命名E完全错误:无法将目标文件命名为*.pdf。也就是说*&引用;在中不允许;文件名。我想您真正想做的是将源文件复制到
&039'...\剪切纸张;具有相同文件名的文件夹。因此,您必须从
&039'URL字符串,并将其用作具有新文件夹路径的目标文件名     ;fso。CopyFile colHyps。项(0)。URL,ThisDrawing。路径(&P)&引用;\剪切纸张\*。pdf“;,正确     ' TRUE选项将自动覆盖具有相同名称的任何现有文件   ;如果结束 ;下一个目标 
 ;设置fso=Nothing是另一个问题:强烈建议不要在MS脚本运行时使用FileSystemObject。对于简单的文件复制/删除,VB/A有内置的方法:FileCopy()和Kill()。给程序增加不必要的依赖性是不好的,更不用说根据Windows操作系统版本的不同,有不同版本的脚本运行时,这可能会给程序带来麻烦,尤其是这个问题很容易避免
页:
1
[2]