フォルダ内のファイル名を変更するには?

解決


困っています  2009-07-23 11:52:21  No: 146100  IP: 192.*.*.*

フォルダ内の全てのファイルの中でファイル名に"_"があるファイル名の"_"を"-"に変更するにはどうすればいいでしょうか?

編集 削除
GOD  2009-07-23 13:52:28  No: 146101  IP: 192.*.*.*

こんな感じ。
拡張子に'_'が含まれていても変換しているので変換したくないときには適当に修正してください。

Dim sFolder As String
Dim intFolderLen As Long
Dim sFNames() As String
Dim sNewFName As String

sFolder = "C:\Test"
intFolderLen = sFolder.Length + 1
If System.IO.Directory.Exists(sFolder) Then
    sFNames = System.IO.Directory.GetFiles(sFolder)
    For intCnt As Integer = 0 To sFNames.Length - 1
        sNewFName = sFolder & "\" & sFNames(intCnt).Substring(intFolderLen, sFNames(intCnt).Length - intFolderLen).Replace("_", "-")
        If sNewFName <> sFNames(intCnt) Then
            System.IO.File.Move(sFNames(intCnt), sNewFName)
        End If
    Next
End If

編集 削除
オショウ  2009-07-23 14:11:58  No: 146102  IP: 192.*.*.*

う〜ん・・・

Imports System.IO

        Dim szFolder As String
        Dim al As ArrayList

        szFolder = "フォルダ名入れて!"

        al = New ArrayList
        al.Clear()

        Dim di As DirectoryInfo

        di = New DirectoryInfo(szFolder)
        For Each fi As FileInfo In di.GetFiles("*_*.xxx")
            al.Add(fi)
        Next

        For Each fi As FileInfo In al
            Dim szNewName As String
            Dim szDir As String
            Dim szFile As String
            Dim szExt As String
            szDir = Path.GetDirectoryName(fi.FullName)
            szFile = Path.GetFileNameWithoutExtension(fi.FullName)
            szExt = Path.GetExtension(fi.FullName)

            szNewName = szFile.Replace("_", "-") + szExt

            My.Computer.FileSystem.RenameFile(fi.FullName, szNewName)
        Next

参考まで・・・

編集 削除
困っています。  2009-07-23 15:02:35  No: 146103  IP: 192.*.*.*

GODさんオショウさん、ありがとうございました。
早速、利用させていただきました。
こんなに早く解決できて感謝、感謝です。

編集 削除