以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  文件夹重命名  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117219)

--  作者:ZJZK2018
--  发布时间:2018/4/9 0:50:00
--  文件夹重命名

需求:

在表中修改“工程名称”或“会议名称”时,原文件夹重命名

 

下面代码出错了

 

Dim dr As DataRow = e.DataRow
Select e.DataCol.Name
    Case "工程名称","会议名称"
        If dr.IsNull("工程名称") = False AndAlso dr.IsNull("会议名称") = False  Then
            Dim pth As String = ProjectPath & "Attachments\\用户工程\\" & dr("工程名称") & "\\" & dr("会议名称")
            If FileSys.DirectoryExists(pth) = False  Then \'如果目录不存在
                FileSys.CreateDirectory(pth)  \'创建目录
               
                If e.NewValue <> e.OldValue Then
                    \'MessageBox.Show(11)
                    FileSys.MoveDirectory(pth,pth)
                End If
            End If
        Else
            MessageBox.Show("工程名称及会议名称不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
        End If
End Select


--  作者:有点甜
--  发布时间:2018/4/9 9:57:00
--  

参考代码,每个列,要分开写。

 

Dim dr As DataRow = e.DataRow
Select e.DataCol.Name
    Case "工程名称"
        If dr.IsNull("工程名称") = False AndAlso dr.IsNull("会议名称") = False  Then
            Dim opath As String = ProjectPath & "Attachments\\用户工程\\" & e.oldvalue & "\\" & dr("会议名称")
            Dim npath As String = ProjectPath & "Attachments\\用户工程\\" & e.newvalue & "\\" & dr("会议名称")
           
            If FileSys.DirectoryExists(opath) = False  Then \'如果目录不存在
                FileSys.CreateDirectory(npath)  \'创建目录
            Else
               
                FileSys.MoveDirectory(opath,npath)
            End If
        Else
            MessageBox.Show("工程名称及会议名称不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
        End If
End Select


--  作者:ZJZK2018
--  发布时间:2018/4/9 20:26:00
--  

老师你好:

我在修改“工程名称”时只是新增一个文件夹,老的哪个文件夹没有删除,如何处理?谢谢

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会议纪要测试.zip


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

--  作者:有点蓝
--  发布时间:2018/4/9 21:21:00
--  
RenameDirectoryhttp://www.foxtable.com/webhelp/scr/0335.htm
--  作者:ZJZK2018
--  发布时间:2018/4/9 23:44:00
--  

有点蓝老师还是不对?如何修改下面这段代码?

 

Dim dr As DataRow = e.DataRow
Select e.DataCol.Name
    Case "工程名称"
        If dr.IsNull("工程名称") = False AndAlso dr.IsNull("会议名称") = False  Then
            Dim opath As String = ProjectPath & "Attachments\\用户工程\\" & e.oldvalue & "\\" & dr("会议名称")
            Dim npath As String = ProjectPath & "Attachments\\用户工程\\" & e.newvalue & "\\" & dr("会议名称")
           
            If FileSys.DirectoryExists(opath) = False  Then \'如果目录不存在
                FileSys.CreateDirectory(npath)  \'创建目录
            Else
               
                FileSys.RenameDirectory(opath,npath)
            End If
        Else
            MessageBox.Show("工程名称及会议名称不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
        End If
    Case "会议名称"
        If dr.IsNull("工程名称") = False AndAlso dr.IsNull("会议名称") = False  Then
            Dim opath As String = ProjectPath & "Attachments\\用户工程\\" & dr("工程名称") & "\\" & e.OldValue
            Dim npath As String = ProjectPath & "Attachments\\用户工程\\" & dr("工程名称") & "\\" & e.NewValue
           
            If FileSys.DirectoryExists(opath) = False  Then \'如果目录不存在
                FileSys.CreateDirectory(npath)  \'创建目录
            Else
               
                FileSys.RenameDirectory(opath,npath)
            End If
        Else
            MessageBox.Show("工程名称及会议名称不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
        End If
End Select

 


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

[此贴子已经被作者于2018/4/9 23:47:34编辑过]

--  作者:有点甜
--  发布时间:2018/4/10 8:54:00
--  
Dim dr As DataRow = e.DataRow
Select e.DataCol.Name
    Case "工程名称"
        If dr.IsNull("工程名称") = False AndAlso dr.IsNull("会议名称") = False  Then
            Dim opath As String = ProjectPath & "Attachments\\用户工程\\" & e.oldvalue & "\\" & dr("会议名称")
            Dim npath As String = ProjectPath & "Attachments\\用户工程\\" & e.newvalue & "\\" & dr("会议名称")
           
            If FileSys.DirectoryExists(opath) = False  Then \'如果目录不存在
                FileSys.CreateDirectory(npath)  \'创建目录
            Else
                FileSys.MoveDirectory(opath,npath)
                If FileSys.GetDirectories(FileSys.GetParentPath(opath)).Count = 0 Then
                    filesys.DeleteDirectory(FileSys.GetParentPath(opath), 2, 2)
                End If

            End If
        Else
            MessageBox.Show("工程名称及会议名称不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Cancel = True
        End If
End Select

--  作者:ZJZK2018
--  发布时间:2018/4/10 13:38:00
--  

有点甜老师:

     上面这代码还是不对。

需求:

在表中修改“工程名称”或“会议名称”时,原文件夹重命名


--  作者:有点甜
--  发布时间:2018/4/10 14:56:00
--  
以下是引用ZJZK2018在2018/4/10 13:38:00的发言:

有点甜老师:

     上面这代码还是不对。

需求:

在表中修改“工程名称”或“会议名称”时,原文件夹重命名

 

1、6楼代码我测试没问题;请认真测试

 

2、你逻辑有问题,假如一个工程名称下有5个不同会议名称,你修改其中一个工程名称的值,那员文件夹就重命名了?不是影响其余4行的值?