Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Studio使用cycle for重命名目录中的文件,并用文本框中的文本替换它_Vb.net_File_Rename_Cycle - Fatal编程技术网

Vb.net Visual Studio使用cycle for重命名目录中的文件,并用文本框中的文本替换它

Vb.net Visual Studio使用cycle for重命名目录中的文件,并用文本框中的文本替换它,vb.net,file,rename,cycle,Vb.net,File,Rename,Cycle,我需要帮助的周期,当程序开始应该重命名选定目录上的文件,但它没有 代码如下: Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click FolderBrowserDialog1.ShowDialog() Label4.Text = FolderBrowserDialog1.SelectedPath

我需要帮助的周期,当程序开始应该重命名选定目录上的文件,但它没有

代码如下:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        FolderBrowserDialog1.ShowDialog()
        Label4.Text = FolderBrowserDialog1.SelectedPath
        Dim counter = FolderBrowserDialog1.SelectedPath
        Label5.Text = counter.Count
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim basedir As String = FolderBrowserDialog1.SelectedPath
        For counter As Integer = 0 To Int(Label5.Text)
            My.Computer.FileSystem.RenameFile(basedir, TextBox1.Text + "x")
        Next
    End Sub
End Class

首先,
FolderBrowserDialog1.SelectedPath
返回一个普通字符串。调用
SelectedPath.Count
不会告诉您目录中有多少文件,而是告诉您字符串路径由多少个字符组成

其次,调用
RenameFile(basedir,…)
不会做任何事情,因为
basedir
指向一个目录-而不是该目录中的文件

为了获得正确的文件计数并遍历文件名,您必须使用类似于
Directory.GetFiles(basedir)
的东西

文件(计数器)
表示当前所在的文件。如果
counter=0
文件(计数器)
将是数组中的第一个文件路径,依此类推

有一件事我不明白,那就是为什么你要给新文件起一个你放在
TextBox1
里的名字和一个
x
。您当前正在为该目录中的每个文件指定完全相同的名称(这是不可能的)。你能告诉我你到底想把它们改名成什么吗

同时,我将
x
替换为
计数器
。这将把它们重命名为
0
1
,依此类推


最后一件事,正如您可能已经注意到的,我在
重命名文件的第二个参数中使用了符号(
&
)而不是加号(
+
)。建议使用与符号连接字符串,因为加号在某些情况下可能导致异常


编辑:

要保留文件的扩展名,只需将其解压缩,然后将其添加到新名称:

For counter As Integer = 0 To Files.Length - 1
    Dim FileExtension As String = Path.GetExtension(Files(counter)) 'Keeping the extension.
    My.Computer.FileSystem.RenameFile(Files(counter), TextBox1.Text & counter & FileExtension)
Next

对不起,我之前没有说过,无论如何,这个程序帮助我重命名媒体中心的文件,如1
For counter As Integer = 0 To Files.Length - 1
    Dim FileExtension As String = Path.GetExtension(Files(counter)) 'Keeping the extension.
    My.Computer.FileSystem.RenameFile(Files(counter), TextBox1.Text & counter & FileExtension)
Next