Foxtable(狐表)用户栏目专家坐堂 → 文件夹重命名


  共有2514人关注过本帖树形打印复制链接

主题:文件夹重命名

帅哥哟,离线,有人找我吗?
ZJZK2018
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
文件夹重命名  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/4/9 20:26:00 [只看该作者]

老师你好:

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

 

 

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


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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/9 21:21:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/4/10 13:38:00 [只看该作者]

有点甜老师:

     上面这代码还是不对。

需求:

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/10 14:56:00 [只看该作者]

以下是引用ZJZK2018在2018/4/10 13:38:00的发言:

有点甜老师:

     上面这代码还是不对。

需求:

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

 

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

 

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


 回到顶部