1

現在、名前を変更したいこれらのファイルのグループがあります。

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.docfile2-1111.docfile2-2222.doc

これは私が現在持っているVBコードです:

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*")
            My.Computer.FileSystem.RenameFile(nameChangeFiles, "2222")

ただし、これは 2222 という名前の空のファイル (拡張子なし) を作成するだけです。

どんな助けでも大歓迎です。

4

4 に答える 4

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
于 2012-06-25T21:38:27.307 に答える
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」を置き換える新しい文字列をテキストボックスに入力すると言いましたが、上記のコードでは、存在する唯一のテキストボックスを使用してサブディレクトリを作成しています。
置換テキストはどこで入手できますか?

于 2012-06-25T21:33:31.973 に答える
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
于 2012-06-25T21:34:25.413 に答える
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"))
于 2012-06-25T21:35:38.143 に答える