以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 查找并打开指定目录中的文件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151547) |
-- 作者:leoli -- 发布时间:2020/6/27 16:34:00 -- [求助] 查找并打开指定目录中的文件 老师,如图内容,如何根据列PartNo的产品名称,只要点击drawing列就可以去找 D:\\GSS\\drawing中相应的产品名的pdf文件,找到就打开,找不到就提示没有。 pdf不分大小字,D:\\GSS\\drawing还会有子目录。
此主题相关图片如下:捕获.png 谢谢。 |
-- 作者:有点蓝 -- 发布时间:2020/6/27 16:58:00 -- click事件 If e.Col.name = "drawing" Then Dim fl As String = "D:\\GSS\\drawing\\" & e.Row("PartNo") & ".pdf" If FileSys.FileExists(fl) Then Dim Proc As New Process Proc.File = fl \'指定要执行的文件 Proc.Start() End If End If |
-- 作者:leoli -- 发布时间:2020/6/27 21:26:00 -- 谢谢老师,不过还有两个问题: 1. 它只能找到D:\\GSS\\drawing下的pdf文件, D:\\GSS\\drawing还有子目录就没有找到了。 2. 可以不可以忽略PartNo 起始号的数字 ? 比如 2.AB_000130_AR 就以 AB_000130_A.pdf 来查找,1.1.CH_000032_G就以 CH_000032_G.pdf 来查找 ? 谢谢。
|
-- 作者:sloyy -- 发布时间:2020/6/28 0:35:00 -- 1 如果是想连子目录都能找出来 那就要把完整的pdf文件,包括路径名全保存在PartNo 列里面,注意:是完整的路径 如果为了美观或者保密,只想显示一个文件名,可以另外增加一列,保存完整的文件及路径,隐藏起来,实际读取的是这一列. 2 可以 ,但是如果找到有2个以上的文件,你还要再选一次,才能打开.
|
-- 作者:leoli -- 发布时间:2020/6/28 7:28:00 -- 1. 不可以自动查找下面的子目录吗? 2. 如何实现 ? 谢谢。
[此贴子已经被作者于2020/6/28 7:28:03编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/28 9:19:00 -- 1、神仙才知道文件在哪个子目录里,你要遍历所有的子目录? 2、按点号取后面的内容即可,如: Dim s As String = "1.1.CH_000032_G" Dim idx As Integer = s.LastIndexOf(".") If idx > -1 Then s = s.SubString(idx+1) End If msgbox(s) |
-- 作者:leoli -- 发布时间:2020/6/28 9:31:00 -- 老师,可以遍历D:\\GSS\\drawing下的所有目录吗 ?那就太好了,谢谢。 |
-- 作者:有点蓝 -- 发布时间:2020/6/28 9:41:00 -- 参考:http://www.foxtable.com/webhelp/topics/0331.htm |
-- 作者:leoli -- 发布时间:2020/6/28 13:58:00 -- 老师,帮忙看一下哪儿不对了,谢谢。 If e.Col.name = "drawing" Then Dim files As String In FileSys.GetDirectories("D:\\GSS\\drawing") Dim fl As String In FileSys.GetFiles("files") = "& e.Row("PartNo") & ".pdf" If FileSys.FileExists(fl) Then Dim Proc As New Process Proc.File = fl \'指定要执行的文件 Proc.Start() Else msgbox ("没有找到相关图纸!") End If
End If |
-- 作者:有点蓝 -- 发布时间:2020/6/28 14:12:00 -- If e.Col.name = "drawing" Then For Each files As String In FileSys.GetDirectories("D:\\GSS\\drawing") Dim fl As String = files & "\\" & e.Row("PartNo") & ".pdf" If FileSys.FileExists(fl) Then Dim Proc As New Process Proc.File = fl \'指定要执行的文件 Proc.Start() Return End If Next msgbox ("没有找到相关图纸!") End If |