我如何从文件读取文本,然后使用我刚读取的文本重命名该文件?

来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:55:39

我如何从文件读取文本,然后使用我刚读取的文本重命名该文件?

问:

您好,脚本专家!我希望能够打开文件,读取前 10 个字符,然后将该文件重命名为这 10 个字符加上文件扩展名 .txt。我该怎么做?

-- KA

答:

您好,KA。这个文本文件问题不需要通过某种奇怪复杂的解决办法来解决。这个问题实际上相当简单:我们可以使用 FileSystemObject 打开文本文件,读取前 10 个字符,然后使用 FileSystemObject 将该文件重命名为这 10 个字符加上文件扩展名 .txt。正如您看到的,所有这些操作只需几行代码:

Const ForReading = 1Set objFSO = CreateObject("Scripting.FileSystemObject")Set objFile = objFSO.OpenTextFile("C:\Scripts\Log.txt", ForReading)strCharacters = objFile.Read(10)objFile.ClosestrNewName = "C:\Scripts\" & strCharacters & ".txt"objFSO.MoveFile "C:\Scripts\Log.txt", strNewName

我们首先定义一个名为 ForReading 的常量,将值 1 赋给它;我们打开要读取的文本文件时将使用该常量。然后我们创建 FileSystemObject 的一个实例,并使用 OpenTextFile 方法打开文件 C:\Scripts\Log.txt。打开文件后,我们读取前 10 个字符并将这些数据存储在变量 strCharacters 中:

strCharacters = objFile.Read(10)

正如您可以看到的,我们可以使用 Read 方法从文本文件读取指定的字符数。假定我们要从文件读取前 37 个字符,怎么办呢?没问题,我们只需使用下面这行代码:

strCharacters = objFile.Read(37)

关闭该文件后,我们构建新文件名,它由文件夹路径 (C:\Scripts\)、我们刚才读取的 10 个字符(由变量 strCharacters 表示)和新文件扩展名 (.txt) 构成。这也只需要一行代码:

strNewName = "C:\Scripts\" & strCharacters & ".txt"

现在只剩下重命名文件了。我们可以通过使用 FileSystemObject 的 MoveFile 方法来执行此操作。(不要被名称欺骗了;在本例中,文件只是从它的旧名称“移动”到它的新名称;没有改变该文件在文件系统中的位置。)我们向 MoveFile 传递两个参数:文件的当前路径和文件的新路径。听起来很荒唐,但在同一文件夹中“移动”文件的实际效果就是重命名它。很奇怪,但却是事实!