Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]用VBA修改文件夹内的所有子文件夹和和文件名

hehehehe  发表于:2020-12-08 11:09:45  
复制

我在做一个能修改文件夹里所有的子文件夹名和文件名的工具, 目的是把名字中的特殊符号替换成别的符号。 但是实际运行中发现,修改文件名没有问题,但是在修改多层文件夹的名字时产生了问题。


比如,我要将 “C:\MAIN\test#\beijing\year1#\" 中所有文件夹名字中的#都替换掉,就是说第二层的文件夹 test# 和第四层的文件夹 year1# 都应该被替换#。 但是代码运行中只能修改最右边的子文件夹 year1#, 代码尝试 修改 test# 时就会报错,说文件不存在。 


我又尝试用简单的代码直接修改,同样是可以修改最右边的文件夹 year1#,但是第二层的test#不能修改,看来代码只能修改最后一层的文件夹名称。 简单的代码如下:


下面这段尝试将test# 改成 test- , 但是不能运行。

sub test()

name "C:\MAIN\test#\beijing\year1#" as "C:\MAIN\test-\beijing\year1#"

end sub


下面这段尝试将最右边的文件夹 year1# 改成 year1- 就可以运行。

sub test()

name "C:\MAIN\test#\beijing\year1#" as "C:\MAIN\test#\beijing\year1-"

end sub


我也尝试过下面这样,也不行,估计是因为test#里有子文件夹。

sub test()

name "C:\MAIN\test#" as "C:\MAIN\test-"

end sub



哪位知道如何解决这个问题么?

 

Top
西出阳关无故人 发表于:2020-12-14 16:50:57
情况属实,也许可以参考URL的定义.

hehehehe 发表于:2020-12-17 13:49:16

各位,我找到解决方法了,使用filesystemobject里的movefolder命令就可以做到修改包含子文件夹的文件夹名字了,程序已经运行成功。

为了让其他人借鉴,我就把自己这个设置为最佳回答了。



总记录:2篇  页次:1/1 9 1 :