乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: krampaul82

超链接文件被重新访问

[复制链接]

55

主题

190

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
410
发表于 2009-7-6 16:44:32 | 显示全部楼层
您是否具有对目录的写入权限?
回复

使用道具 举报

55

主题

190

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
410
发表于 2009-7-8 14:58:13 | 显示全部楼层
我看到了明显的代码错误,尤其是代码中断的错误。--------------------------------------------------------------------
选项显式
Public SubGartner_Get_Hyperlink_Main()
Dim obEnt As AcadBlockResources
Dim colHyps As AcadEntity
Dim fso As FileSystemObject
Set fso=New FileSystemObject
"遵循"如果...那么...结束如果"没有执行您的预期(删除文件夹中的所有PDF文件)
"原因是您没有将有效的文件名传递给fso.DeleteFile()方法:没有可以
"命名为"*. pdf"的文件。fso.DeleteFile()一次只删除一个文件。它不会通过接受
"通配符文件名模式(如*. pdf)来删除所有文件。您需要使用重复调用Dir(path & "\*.pdf")获取每个
"PDF文件名并逐个删除。
如果Len(Dir(ThisDrawing.Path&"\Cut Sheets\*. pdf"))  0然后
'检查CURRENT_Project\Cut Sheets\
fso.DeleteFileThisDrawing.Path&"\Cut Sheets\*. pdf", True
'如果有,删除它们
结束如果
对于ThisDrawing.ModelSpace中的每个对象
如果TypeOf对象Ent是AcadBlockResources那么
设置对象块=对象块
设置colHypsobjBlock.Hyperlinks=
"这是典型的"On Error Resume"的worng使用,它对您隐藏错误
br>“由于您没有在代码中确保您肯定会从超链接的URL中获得有效的文件名
”。由于fso.Copy文件可能会失败(它确实失败了),您应该处理
"可能的错误
On Error Resume Next
'如果我们遇到任何没有超链接的块
"假设您确实从Url中获得了有效的文件名(您可以添加"Debug.PrintcolHyps.Item(0)。URL"
"为了验证您始终有一个好的文件名),传递给fso.FileCopy()
"方法的第二个参数肯定是错误的:您不能将目标文件命名为*. pdf。
"文件名中不允许使用"*"。我猜您真正想做的是将源文件复制到具有相同文件名的
"...\Cut Sheets\"文件夹中。因此,您必须从
"URL字符串中解析出文件名,并将其用作带有新文件夹路径
fso.CopyFilecolHyps.Item(0)的目标文件名。URL,ThisDrawing.Path&"\Cut Sheets\*. pdf", True
'TRUE选项将自动覆盖任何具有相同名称的现有文件
结束如果
下一个对象Ent
设置fso=无
结束子
另一个问题:强烈建议您不要使用MS脚本运行时的FileSystemObject。对于简单的文件复制/删除,VB/A内置了方法:FileCopy()和杀()。在您的程序中添加不必要的依赖关系是不好的,更不用说有不同版本的脚本运行时,取决于Windows OS版本,这可能会给您的程序带来麻烦,尤其是麻烦真的很容易避免。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-2 00:29 , Processed in 1.028755 second(s), 55 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表