Foxtable(狐表)用户栏目专家坐堂 → [求助]批量修改文件名


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

主题:[求助]批量修改文件名

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


加好友 发短信
等级:婴狐 帖子:44 积分:494 威望:0 精华:0 注册:2008/9/5 8:41:00
[求助]批量修改文件名  发帖心情 Post By:2013/6/6 9:50:00 [只看该作者]

现在有一个总文件夹,文件夹下有很多的子文件夹,这些文件夹的名称都是已数字命名的,如:542526483311JA00001, 542526483311JA00002,

现在是这样,这些数字文件夹下面有一个.doc文件,原来是清单.doc,现在我想写一个按钮,达到直接选中总文件夹后,批量完成将该文件夹下的清单.doc文件改名为542526483311JA00001清单.doc,等等,就是取数字编号文件名称+清单来完成一一对应关系,可否?


例如:     图片文件夹分级
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/6/6 9:56:00 [只看该作者]

http://www.foxtable.com/help/topics/0331.htm  参考这里可以满足你需求

先利用GetDirectories 获得所有文件夹名

再利用 MoveFile  重命名

最后 DeleteFile 删除原来的文件

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


加好友 发短信
等级:婴狐 帖子:44 积分:494 威望:0 精华:0 注册:2008/9/5 8:41:00
  发帖心情 Post By:2013/6/6 11:14:00 [只看该作者]

能帮写一下代码么,我参考学习,因为刚刚接触弧表,还有点搞不清楚,谢谢


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


加好友 发短信
等级:婴狐 帖子:44 积分:494 威望:0 精华:0 注册:2008/9/5 8:41:00
  发帖心情 Post By:2013/6/6 12:04:00 [只看该作者]

按钮公式:

For Each dr As DataRow In DataTables("表A").DataRows
     Dim fl2 As String = "C:\B\" & dr("宗地号") & "\ 清单.doc"     
     FileSys.RenameFile(fl2,"C:\B\"  & dr("宗地号") & "\" & dr("宗地号") &  "清单.doc")
   Next

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

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


加好友 发短信
等级:婴狐 帖子:44 积分:494 威望:0 精华:0 注册:2008/9/5 8:41:00
  发帖心情 Post By:2013/6/6 12:04:00 [只看该作者]

不知错误在哪里?》请指教

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/6 12:07:00 [只看该作者]

1、“清单”前面多了一个空格:

 

Dim fl2 As String = "C:\B\" & dr("宗地号") & "\ 清单.doc"     


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


加好友 发短信
等级:婴狐 帖子:44 积分:494 威望:0 精华:0 注册:2008/9/5 8:41:00
  发帖心情 Post By:2013/6/6 12:24:00 [只看该作者]

哈哈,收到,谢谢老总


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


加好友 发短信
等级:婴狐 帖子:44 积分:494 威望:0 精华:0 注册:2008/9/5 8:41:00
  发帖心情 Post By:2013/6/6 12:34:00 [只看该作者]

还是不行,按你的改了

For Each dr As DataRow In DataTables("表A").DataRows
     Dim fl2 As String = "C:\B\" & dr("宗地号") & "\清单.doc"     
     FileSys.RenameFile(fl2,"C:\B\" & dr("宗地号") & "\" & dr("宗地号") & "清单.doc")
   Next

执行结果:
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看


还有就是想设计一个全局变量A,A代表的是改名前的DOC文件的名称,因为手工做的很多不统一,有的是XX清单,有的是xxx清单,想给一个手工输入的地方来完成改名,不知怎么修改代码。
谢谢

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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/6 14:24:00 [只看该作者]

你要重命名的话,第二个参数不能包括路径,因为重命名只是更改源文件的名称,并不改变文件的路径。
也许你应该用这个:

http://www.foxtable.com/help/topics/0342.htm

 

For Each dr As DataRow In DataTables("表A").DataRows
     Dim fl2 As String = "C:\B\" & dr("宗地号") & "\清单.doc"    
     FileSys.CopyFile(fl2,"C:\B\" & dr("宗地号") & "\" & dr("宗地号") & "清单.doc",True)
     FileSys.DeleteDirectory("C:\B\" & dr("宗地号"))
Next

 

也就是先复制文件到一个新的位置和新的名称,然后删除原来的目录,具体可以自己调整,看看全部的文件与目录相关函数:

http://www.foxtable.com/help/topics/0331.htm

 


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


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/6 14:26:00 [只看该作者]

至于第二个文件:

 

For Each dr As DataRow In DataTables("表A").DataRows
      Dim dr2 As String = "C:\B\" & dr("宗地号") 

      For Each fl2 As string in Filesys.GetFiles(dr2)
            FileSys.CopyFile(fl2,"C:\B\" & dr("宗地号") & "\" & dr("宗地号") & "清单.doc",True)

      Next
     FileSys.DeleteDirectory("C:\B\" & dr("宗地号"))
Next


 回到顶部
总数 13 1 2 下一页