我从Visual Basic开始并使用Visual Studio 2012并尝试创建一个用于重命名一组文件的工具。
怎么样:
1-使用“选择文件”按钮,我可以选择文件,它们列在ListBox
中2-“旧值”是一个文本框,是文件名中要更改的值。例如:fff
3-“新值”是一个文本框,是应该替换旧值的新值。例如:zzz
4-重命名是一个启动过程的按钮。
要仅重命名一个文件,这不是问题。 但是如何重命名ListBox中包含Oldvalue的所有文件?
你能帮帮我吗?
由于
答案 0 :(得分:0)
我建议循环遍历列表框中的选定文件,检查哪些文件包含OldValue字符串。
您可以使用string.contains http://msdn.microsoft.com/en-us/library/dy85x1sa(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
听起来你已经对replace函数进行了排序,因为你说只做一个文件没问题。
答案 1 :(得分:0)
谢谢70Mike。
但我对循环有一些问题。 如果它仅适用于1个文件而不适用于所有文件。
这是我的代码:
Public Class frmRename
Private Sub cmdSelectFile_Click(sender As Object, e As EventArgs) Handles cmdSelectFile.Click
If (OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK) Then
For Each S As String In OpenFileDialog1.FileNames
lstSelectFiles.Items.Add(S)
Next
Else : Exit Sub
End If
End Sub
Private Sub cmdRename_Click(sender As Object, e As EventArgs) Handles cmdRename.Click
Try
For LC As Integer = 0 To lstSelectFiles.Items.Count - 1
Dim s1 As String = lstSelectFiles.Items(LC)
Dim s2 As String = txtbOld.Text
Dim b As String
b = s1.Contains(s2)
Console.WriteLine("Is the string, s2, in the string, s1?: {0}", b)
Do While b = True
Dim oldFile As String = lstSelectFiles.Items(LC)
Dim newFile As String = Replace(lstSelectFiles.Items(LC), txtbOld.Text, txtbNew.Text)
If File.Exists(oldFile) And Not File.Exists(newFile) Then
File.Move(oldFile, newFile)
Kill(oldFile)
End If
Loop
Next
Catch ex As Exception
MsgBox("No file renamed")
End Try
End Sub
End Class