以文本方式查看主题

-  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



甜老师这段代码呢有问题?运行后如果修改的名称和要修改的名称一样时会出错,怎么处理一下呢?


图片点击可在新窗口打开查看此主题相关图片如下:错误提示.png
图片点击可在新窗口打开查看


第一次修改时能成功,第二次修改时提示文件名称在报错,怎么处理一下呢?

[此贴子已经被作者于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)
FileSys.RenameFile(file, zpxghmc & name(1))



--  作者:裴保民
--  发布时间:2019/1/9 22:01:00
--  
甜老师这样我运行后,如如文件夹内的文件和修改的文件名不符就会报错,刚才是如果一样时报错,现在是不一样时报错



图片点击可在新窗口打开查看此主题相关图片如下:错误提示二.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/1/9 22:03:44编辑过]

--  作者:有点甜
--  发布时间:2019/1/9 22:19:00
--  

这两句代码不可能有问题的,加入msgbox弹出各个值看一下。

 

FileSys.CopyFile(file, ProjectPath  & "复制到文件夹/" & name(1), True)
FileSys.RenameFile(file, zpxghmc & name(1))


--  作者:裴保民
--  发布时间:2019/1/9 22:22:00
--  
刚才弹出错误框了,不知道怎么回事,现在有没事了