以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于修改文件名 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129968) |
-- 作者:裴保民 -- 发布时间:2019/1/9 20:50:00 -- 关于修改文件名 Dim path = ProjectPath & "测试图片\\" Dim zpxghmc As String Dim khmc As String Dim dr = Tables("客户资料").Current Dim t As Table = Tables("客户资料") If dr Is Nothing Then \'如果没找到的话 MessageBox.Show("数据库中无数据,无效操作!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning) Return Else zpxghmc =dr("客户姓名") If dr.IsNull("身份证号") = False Then zpxghmc =zpxghmc & right(dr("身份证号"),6) & "-" Else zpxghmc = zpxghmc & "-" End If khmc =t.Current("客户姓名") If FileSys.DirectoryExists( path & dr("客户姓名")) Then For Each File As String In FileSys.GetFiles( path & dr("客户姓名")) Dim name() As String = FileSys.GetName(file).split("-") If name.length > 1 If FileSys.FileExists(path & "\\" & zpxghmc & name(1))=False Then If t.Current IsNot Nothing Then FileSys.RenameFile(file, zpxghmc & name(1)) \'MessageBox.Show( zpxghmc & zpxghmc =dr("客户姓名")) End If End If End If Next Else MessageBox.Show("要修改的文件夹不存在!", "提示") Return End If MessageBox.Show("照片名称修改成功!", "提示") End If 甜老师这段代码呢有问题?运行后如果修改的名称和要修改的名称一样时会出错,怎么处理一下呢? 第一次修改时能成功,第二次修改时提示文件名称在报错,怎么处理一下呢?
[此贴子已经被作者于2019/1/9 20:55:39编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/9 21:14:00 -- If FileSys.FileExists(path & "\\" & zpxghmc & name(1))=False Then
改成
If FileSys.FileExists(path & dr("客户姓名") & "\\" & zpxghmc & name(1)) = False Then
|
-- 作者:裴保民 -- 发布时间:2019/1/9 21:31:00 -- 谢谢甜老师 再请教一个问题,,这样只能一个一个得修改文件名,太麻烦了! 能一次性将所有符合条件的文件一次性更改吗?
|
-- 作者:有点甜 -- 发布时间:2019/1/9 21:42:00 -- 以下是引用裴保民在2019/1/9 21:31:00的发言:
谢谢甜老师 再请教一个问题,,这样只能一个一个得修改文件名,太麻烦了! 能一次性将所有符合条件的文件一次性更改吗?
你的意思是循环表格的每一行,然后去修改?
那你写成 for each r as row in tables("客户资料").rows |
-- 作者:裴保民 -- 发布时间:2019/1/9 21:48:00 -- Dim path = ProjectPath & "测试图片\\" Dim zpxghmc As String Dim khmc As String Dim dr = Tables("客户资料").Current Dim t As Table = Tables("客户资料") If dr Is Nothing Then \'如果没找到的话 MessageBox.Show("数据库中无数据,无效操作!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning) Return Else zpxghmc =dr("客户姓名") If dr.IsNull("身份证号") = False Then zpxghmc =zpxghmc & right(dr("身份证号"),6) & "-" Else zpxghmc = zpxghmc & "-" End If khmc =t.Current("客户姓名") If FileSys.DirectoryExists( path & dr("客户姓名")) Then For Each File As String In FileSys.GetFiles( path & dr("客户姓名")) Dim name() As String = FileSys.GetName(file).split("-") If name.length > 1 \' If FileSys.FileExists(path & "\\" & zpxghmc & name(1))=False Then If FileSys.FileExists(path & dr("客户姓名") & "\\" & zpxghmc & name(1)) = False Then If t.Current IsNot Nothing Then FileSys.RenameFile(file, zpxghmc & name(1)) FileSys.CopyFile(file, ProjectPath & "复制到文件夹/" & name(1), True) 甜老师这句代码对吗?怎么不将修改好的图片复制到“复制到文件夹”下呢? End If End If End If Next Else MessageBox.Show("要修改的文件夹不存在!", "提示") Return End If MessageBox.Show("照片名称修改成功!", "提示") End If
|
-- 作者:裴保民 -- 发布时间:2019/1/9 21:49:00 -- 对,修改那句代码呢? [此贴子已经被作者于2019/1/9 21:50:10编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/9 21:50:00 -- 改成
FileSys.CopyFile(file, ProjectPath & "复制到文件夹/" & name(1), True) |
-- 作者:裴保民 -- 发布时间:2019/1/9 22:01:00 -- 甜老师这样我运行后,如如文件夹内的文件和修改的文件名不符就会报错,刚才是如果一样时报错,现在是不一样时报错 [此贴子已经被作者于2019/1/9 22:03:44编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/9 22:19:00 -- 这两句代码不可能有问题的,加入msgbox弹出各个值看一下。
FileSys.CopyFile(file, ProjectPath & "复制到文件夹/" & name(1), True) |
-- 作者:裴保民 -- 发布时间:2019/1/9 22:22:00 -- 刚才弹出错误框了,不知道怎么回事,现在有没事了 |