多数のファイルを含むフォルダーがあり、反復番号を含むパターンに基づいて名前が付けられています。
を通じて新しいファイルを保存しようとしていますvb.net
。フォルダの番号が一番大きい+1の名前をつけるのが狙い目
インターネットで調べたところ、次のコードを作成するのに役立つ正規表現とLinqについて多くのことがわかりました。
If tmpFileName.Contains("%num%") Then
Dim lastFileNo As Integer = 1
Dim tmpFName = Dir(frmMain.saveLocalTFPath & "*.docx")
Dim numbers() As Integer = Regex.Split(tmpFName, "(?<alpha>[\w-[0-9]]+)(?<num>[\d]+)").Skip(1).Select(Function(s) Integer.Parse(s)).ToArray
For Each element In numbers
If element > 0 And element < 999 And element > lastFileNo Then lastFileNo = element
Next
Do Until tmpFName = ""
numbers = Regex.Split(tmpFName, "(?<alpha>[\w-[0-9]]+)(?<num>[\d]+)").Skip(1).Select(Function(s) Integer.Parse(s)).ToArray
For Each element In numbers
If element > 0 And element < 1000 And element > lastFileNo Then lastFileNo = element
Next
tmpFName = Dir()
Loop
tmpFileName = tmpFileName.Replace("%num%", lastFileNo)
End If
しかし、期待どおりには機能しません。Linq と Regex の最初のコードであり、コードの何が問題なのかを検出するのに慣れていません。誰かヒントを教えてください。
ありがとう