怎样进行文件更名复制?

longstarsky 2005-03-16 10:01:56
要求:
在VB下用代码实现文件的复制,有如下要求:
1、将文件A下的文件复制到另一文件夹B下
2、文件名为随机建立,是已当天的日期为文件名,即为“YYYYMMDD”。
3、文件夹路径最好使用变量
那位知道,请帮忙。
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
longstarsky 2005-03-17
  • 打赏
  • 举报
回复
问题已经得到解决,谢谢各位朋友的热心支持,尤其是Gutta(冯大狂) wx05(努力学习中)及maskdata……当然还有帮助我的每一位朋友!谢谢呢~
简单程序如下:(检测文件是否已经存在的请自行编写)
Set fs = CreateObject("Scripting.FileSystemObject")

fs.CopyFile "Yourfilename", "Yourfilename(" + Str(Date) + ").mdb", False
MsgBox "数据备份成功!"
Set fs = Nothing
运行结果如下:轴承记录编辑备份(2005-3-17).mdb
Gutta 2005-03-17
  • 打赏
  • 举报
回复
文件名为随机建立,是已当天的日期为文件名,即为“YYYYMMDD”

这句话我不太看得懂哦~~,如果是一律用当天日期做文件名,岂不是重复了?

下面的思路实现的是:
将文件夹A下的文件复制到文件夹B下,而且移动后的文件名依次为:
假设今天是2000-10-10
20001010_0
20001010_1
....
20001010_N
如果存在文件,则自动修改为20001010_N_2

1:SHGetPathFromIDList和SHBrowseForFolder函数来选择A文件夹和B文件夹
并保存在两个变量中,StrA,StrB
2:然后用FindFirstFile和FindNextFile来遍利整个A文件夹,并且每找到一个文件,并把旧文件名和生成的新文件名放入两个数组中保存起来。
Count=Count+1
Redim Preserve OldName(Count)
Redim Preserve NewName(Count)
OldName(Count)=...
NewName(Count)=Format(Date,"yyyymmdd")+"_"+Cstr(Count)

3:最后用一个循环将文件复制到目录StrB中去!
For i=0 to Count
If Len(StrB & NewName)<>0 then
if msgbox ("要覆盖吗?",vbYesNo)=vbNo then NewName(i)=NewName(i)+ "_2"
end if
FileCopy StrA+OldName(i) StrB+NewName(i)
Next i

4:对了,不要忘记错误捕捉,可能复制的文件已经打开,就会出错。
wx05 2005-03-17
  • 打赏
  • 举报
回复
后面直接用 Name oldpathname As newpathname,开始以为是复制文件呢

viena 2005-03-17
  • 打赏
  • 举报
回复
楼上怎么还Kill啊?
是复制还是移动啊?
如果是移动,用语句
Name oldFileName As newFileName
就可以了
flyingZFX 2005-03-17
  • 打赏
  • 举报
回复
UP
wx05 2005-03-17
  • 打赏
  • 举报
回复
dim filename1 as string ,filename2 as string
filename1=app.path & "\a\1.txt"
filename2=app.path & "b\"
filename2=filename2 & Format(Now, “yyyymmdd”) & ".txt"
filecopy filename1,filename2
kill filename1

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧