моя проблема: у меня много текстовых файлов, которые я хочу переименовать.
Я использовал объект 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
Для простоты я включил только основные этапы и исключил всю обработку ошибок.
Моя цель: найти какой-нибудь способ, чтобы просто переименовать текущий файл, не возиться с его содержимым.