Visual Basic重命名一组文件

时间:2014-04-10 09:55:25

标签: vb.net visual-studio-2012 file-rename

我从Visual Basic开始并使用Visual Studio 2012并尝试创建一个用于重命名一组文件的工具。

怎么样:

1-使用“选择文件”按钮,我可以选择文件,它们列在ListBox

2-“旧值”是一个文本框,是文件名中要更改的值。例如:fff

3-“新值”是一个文本框,是应该替换旧值的新值。例如:zzz

4-重命名是一个启动过程的按钮。

要仅重命名一个文件,这不是问题。 但是如何重命名ListBox中包含Oldvalue的所有文件?

你能帮帮我吗?

由于

2 个答案:

答案 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