我目前有这些要重命名的文件组:
C:\Users\tmedina\Documents\testenviroment\Testfolder\file1-1111.doc
C:\Users\tmedina\Documents\testenviroment\Testfolder\file2-1111.doc
C:\Users\tmedina\Documents\testenviroment\Testfolder\file3-1111.doc
...
C:\Users\tmedina\Documents\testenviroment\Testfolder\file20-1111.doc
我的表单上有一个文本框,我会输入一个文本字符串,将“1111”替换为文本框字段中的字符串。
例如,在我的应用中,在文本框字段中,我会输入2222
,然后当我点击button1时,它会将file1-1111.doc
重命名为file1-2222.doc
,{{ 1}}到file2-1111.doc
等等.....
这是我目前拥有的VB代码:
file2-2222.doc
但这只会创建一个名为2222的空文件(没有扩展名)。
任何帮助将不胜感激。
答案 0 :(得分:0)
你可以试试这个。
For Each nameChangeFiles As String In My.Computer.FileSystem.GetFiles(newDir, SearchOption.SearchAllSubDirectories, "*1111*")
Dim newName As String = nameChangeFiles.Replace("1111", "2222")
My.Computer.FileSystem.RenameFile(nameChangeFiles, newName)
Next
但是这改变了部分“1111”和“2222”。
您已经说过在文本框中输入新字符串来替换“1111”,但在上面的代码中,唯一存在的文本框用于创建子目录。
你能解释一下你在哪里获得替换文本吗?
答案 1 :(得分:0)
试试这个:
Dim base As String = "C:\Users\tmedina\Documents\testenviroment\"
Dim newDir As String = base + CStr(TextBox1.Text)
Directory.CreateDirectory(newDir)
Directory.SetCurrentDirectory(newDir)
For Each nameChangeFiles As String In My.Computer.FileSystem.GetFiles(newDir, Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*1111*")
Dim fi As FileInfo
fi = New FileInfo(nameChangeFiles)
Dim newFilename As String = Path.Combine(newDir, fi.Name.Replace("1111", "2222"))
My.Computer.FileSystem.RenameFile(nameChangeFiles, newFilename)
Next
答案 2 :(得分:0)
使用String.Replace()函数:
Dim base As String = "C:\Users\tmedina\Documents\testenviroment\"
Dim newDir As String = base + CStr(TextBox1.Text)
Directory.CreateDirectory(newDir)
Directory.SetCurrentDirectory(newDir)
String ToReplace = "1111"
For Each nameChangeFiles As String In My.Computer.FileSystem.GetFiles(newDir, Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*" & ToReplace & "*")
My.Computer.FileSystem.RenameFile(nameChangeFiles.Replace(ToReplace, "2222"))
答案 3 :(得分:0)
RenameFile
不知道要重命名的文件的哪个部分;它只做了整件事。无论如何,这是我写的方式:
Dim newDir As String = Path.Combine(base, TextBox1.Text)
For Each f As FileInfo In New DirectoryInfo(base).GetFiles("*.doc", SearchOption.AllDirectories)
f.CopyTo(Path.Combine(newDir, Regex.Replace(f.Name, "\d+\.doc$", "2222.doc")))
Next