0

この命名規則に従って、ディレクトリ内にファイルのリストがあります。

CFW-500-FY13Q4.doc

CFW-501-FY13Q4.doc

CFW-502-FY13Q4.doc

...

CFW-520-FY13Q4.doc

を に置き換えようとしましたFY13Q4FY14Q1、番号付けシーケンス (500、501 など) を失わずにファイルのその部分のみの名前を変更する方法に頭を悩ませています。これは私の現在のコードでしたが、最初のファイルの名前を変更し、残りは変更しないため、CFW-500-FY13Q4うまくCFW-500-FY14Q1.docいきません。

Dim a As Integer = 500
For Each f As String In My.Computer.FileSystem.GetFiles(newDir, FileIO.SearchOption.SearchAllSubDirectories, "*CFW*")
My.Computer.FileSystem.RenameFile(f, "CFW-" & a & "-" & "FY14Q1" & ".doc")

誰かが私を正しい方向に向けることができますか?

4

3 に答える 3

0

これが 1 回限りのタスクである場合は、コマンド プロンプトで次のように実行できます。

ren ????????FY13Q4.doc ????????FY14Q1.doc
于 2013-05-01T18:13:14.847 に答える
0

メソッドを置き換えることができます:

Dim a As Integer = 500
For Each f As String In My.Computer.FileSystem.GetFiles(newDir, FileIO.SearchOption.SearchAllSubDirectories, "*CFW*")
My.Computer.FileSystem.RenameFile(f, f.replace("FY13Q4", "FY14Q1"))
于 2013-05-01T16:35:47.953 に答える
0

IO 名前空間、具体的には IO.Directory と IO.FileInfo の使用を開始することをお勧めします。単純な文字列ではなく、より高いレベルで操作するようになったため、コードの保守が容易になるからです。

Jon Skeet によるこの回答を参照してください。

System.IO.Directory.GetFiles を使用してファイルとフォルダーを再帰的に列挙する方法

FileInfoにはMoveToメソッドがあり、表示されているエラーを解決します。

于 2013-05-01T17:36:41.927 に答える