我的问题:我有很多要重命名的文本文件。 我一直在使用ADODB.Stream对象打开/读取/写入文件,因为它们以UTF-8编码。因此,现在,如果可能的话,我想重命名文件,而不需要复制内容,将内容写入具有所需名称的新文件并删除旧文件的解决方法。文件上的时间戳对我来说是宝贵的信息,这就是为什么我不想创建新文件。
这是我当前的解决方法,它可以创建新文件并删除旧文件。 代码有问题: 1)复制的文件具有新的时间戳 2)新行不会被复制到新行中。由于它们包含某种XML代码,因此生成的文件变得难以阅读。复制后,我需要编写一段代码在所有适当位置上设置新行。
Sub renameModules()
Dim currentTXT As Variant, newTxt As Variant
Dim currentPath As String, newPath As String
Dim currentContent As String
currentPath = "C:\Users\Me\Desktop\Test\MyCurrent.txt"
newPath = "C:\Users\Me\Desktop\Test\Target001.txt"
Set currentTXT = CreateObject("ADODB.Stream")
currentTXT.Charset = "utf-8"
currentTXT.Open
currentTXT.LoadFromFile (currentPath)
currentContent = currentTXT.ReadText()
Set newTxt = CreateObject("ADODB.Stream")
newTxt.Charset = "utf-8"
newTxt.Open
newTxt.WriteText currentContent
newTxt.savetofile newPath, 1
Kill currentPath
End Sub
为简单起见,我仅包括基本步骤,并省略了所有错误处理。
我的目标:找到一些方法来简单地重命名当前文件,而不用弄乱其内容。
答案 0 :(得分:1)
无需处理ADODB.Stream
:您可以使用VBA命令name
不仅可以重命名文件,还可以将其移动到其他文件夹:
Name currentPath As newPath