以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何修改电脑里文件夹名  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=66030)

--  作者:半人马座比邻星
--  发布时间:2015/3/27 20:05:00
--  [求助]如何修改电脑里文件夹名

求助大神

按照图中填写单元格,随后在电脑指定盘符中生成文件夹

 

Dim i As Integer
Dim j As Integer
Dim path As String
For i = 0 To Tables("表A").rows.Count-1
For j = 0 To Tables("表A").cols.Count-1

path = "f:\\" & Tables("表A").rows(i)("第一列") &"\\"& Tables("表A").rows(i)("第二列")  &"\\"& Tables("表A").rows(i)("第三列") &"\\"& Tables("表A").rows(i)("第四列") &"\\"& Tables("表A").rows(i)("第五列") &"\\"& Tables("表A").rows(i)("第六列") &"\\"& Tables("表A").rows(i)("第七列") &"\\"& Tables("表A").rows(i)("第八列") &"\\"& Tables("表A").rows(i)("第九列") &"\\"& Tables("表A").rows(i)("第十列") &"\\"& Tables("表A").rows(i)("第十一列") &"\\"& Tables("表A").rows(i)("第十二列") &"\\"& Tables("表A").rows(i)("第十三列") &"\\"& Tables("表A").rows(i)("第十四列") &"\\"& Tables("表A").rows(i)("第十五列") &"\\"& Tables("表A").rows(i)("第十六列") &"\\"& Tables("表A").rows(i)("第十七列") &"\\"& Tables("表A").rows(i)("第十八列") &"\\"& Tables("表A").rows(i)("第十九列") &"\\"

filesys.CreateDirectory(path)
Next
Next

 

 

问题是这样:如果在单元格上更改了内容,比如把“6”变成“60”后,再次执行代码。“2”文件夹里出现了“6”和“60”共存的现象。怎么才能实现改成“60”后,把“6”删除,并且同时删除“6”文件夹内的所有文件夹和文件。DeleteDirectory只能删除指定文件夹,DeleteFile只能删除指定文件。


图片点击可在新窗口打开查看此主题相关图片如下:生成文件夹.png
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2015/3/28 9:51:00
--  

将原目录中的文件复制到新的目录,再删除原目录,简洁达到重命名目录的作用。

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

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

 

[此贴子已经被作者于2015/3/28 9:52:08编辑过]

--  作者:半人马座比邻星
--  发布时间:2015/3/28 15:02:00
--  

再一次求教大神,CopyDirectory我试了一下只能删改指定文件夹下的内容DeleteDirectory 也只能删除指定文件夹。我想达成是在设计窗口时设计一个刷新按钮,通过刷新,删掉不存在的文件夹和文件夹内的文件。但是我找不到随机删除文件夹的方法。因为这个表格里行数很多,列很少,删改列的话工作量很大,那我想通过删改行来达到删改文件夹以及文件的目的。


--  作者:Bin
--  发布时间:2015/3/28 15:10:00
--  
获取指定目录的所有文件夹名,然后就可以遍历和表中数据对比, 不存在就按照2楼代码删除
--  作者:半人马座比邻星
--  发布时间:2015/3/28 16:39:00
--  
大神,我想了一下。是这样的,1.先更改表格中数据,然后保存表(此时文件夹名未改变)。2获取指定文件夹内所有子文件夹名并在表A中通过新增行来表示(新增的行未保存)3通过对比表A中的数据,得到应该删除的文件夹的路径,通过DeleteDirectory删掉应删的文件夹。4再删除未保存的行,并通过

For i = 0 To Tables("表A").rows.Count-1
For j = 0 To Tables("表A").cols.Count-1

path = "f:\\ce shi wen jian jia1\\" & Tables("表A").rows(i)("第一列") &"\\"& Tables("表A").rows(i)("第二列")  &"\\"& Tables("表A").rows(i)("第三列") &"\\"& Tables("表A").rows(i)("第四列") &"\\"& Tables("表A").rows(i)("第五列") &"\\"& Tables("表A").rows(i)("第六列") &"\\"& Tables("表A").rows(i)("第七列") &"\\"& Tables("表A").rows(i)("第八列") &"\\"& Tables("表A").rows(i)("第九列") &"\\"& Tables("表A").rows(i)("第十列") &"\\"& Tables("表A").rows(i)("第十一列") &"\\"& Tables("表A").rows(i)("第十二列") &"\\"& Tables("表A").rows(i)("第十三列") &"\\"& Tables("表A").rows(i)("第十四列") &"\\"& Tables("表A").rows(i)("第十五列") &"\\"& Tables("表A").rows(i)("第十六列") &"\\"& Tables("表A").rows(i)("第十七列") &"\\"& Tables("表A").rows(i)("第十八列") &"\\"& Tables("表A").rows(i)("第十九列") &"\\"

FileSys.MoveDirectory("path1", "path")


Next
Next

重新生成文件夹

 

 

现在卡在3那,对比表中数据并得到路径这个搞不定了。大神能否帮个忙?


--  作者:Bin
--  发布时间:2015/3/28 16:48:00
--  
我回头看了一下你的问题,你这个其实很容易解决.

在DataColChanged事件, 修改了列名的时候,删除老的文件夹级可

因为有e.oldValue 可用.

--  作者:半人马座比邻星
--  发布时间:2015/3/28 16:54:00
--  
简单么?我确实接触这个时间不长,基本是自学。如何同时删掉文件夹呢?
--  作者:半人马座比邻星
--  发布时间:2015/3/28 16:55:00
--  
e.oldValue 是?
--  作者:Bin
--  发布时间:2015/3/28 17:00:00
--  
http://www.foxtable.com/help/topics/0625.htm
--  作者:半人马座比邻星
--  发布时间:2015/3/28 22:27:00
--  

我试着写了一下

Dim i As Integer

Dim j As Integer
Dim path As String
For i = 0 To Tables("表A").rows.Count-1
For j = 0 To Tables("表A").cols.Count-1
If e.DataCol.Name = "0 To Tables("表A").cols.Count-1" Then
If e.NewValue = True Then
    e.DataRow.save = True
End If
End If
    path1= "f:\\ce shi wen jian jia1\\" & Tables("表A").rows(i)("第一列") &"\\"& Tables("表A").rows(i)("第二列")  &"\\"& Tables("表A").rows(i)("第三列") &"\\"& Tables("表A").rows(i)("第四列") &"\\"& Tables("表A").rows(i)("第五列") &"\\"& Tables("表A").rows(i)("第六列") &"\\"& Tables("表A").rows(i)("第七列") &"\\"& Tables("表A").rows(i)("第八列") &"\\"& Tables("表A").rows(i)("第九列") &"\\"& Tables("表A").rows(i)("第十列") &"\\"


FileSys.DeleteDirectory("path1",3,3)

           
Next
Next

 

 

好像不行,大神救我

 

还有一个想法,如果e.OldValue 能够利用的话,是不是就不用第二步,不用获取指定文件夹内所有子文件夹名并在表A中通过新增行来表示(新增的行未保存)呢?

 

运行时还说“e”是“private",不能在上下文中引用

[此贴子已经被作者于2015/3/28 22:34:46编辑过]