2014-05-16 63 views
1

所以我知道如何增加。我有以下代碼工作:檢查文件是否存在並用增量保存新文件

Dim startFileName As String = StorageRoot & endFile 
Dim endFileName As String = String.Empty 
Dim Counter As Integer = 1 

Do 
    Dim myFileInfo As New FileInfo(startFileName) 
    endFileName = myFileInfo.DirectoryName & IIf(Not myFileInfo.DirectoryName.EndsWith("\"), "\", String.Empty).ToString & _ 
        Path.GetFileNameWithoutExtension(startFileName) & Counter & myFileInfo.Extension 
    Counter += 1 
Loop Until Not IO.File.Exists(endFileName) 

endFile = endFileName 

This works。但這是我的困境。比方說,存在下列文件:

filename_v1.ext filename_v2.ext filename_v3.ext filename_v4.ext

,然後用戶刪除他們中的一個,可以說filename_v3.ext

在接下來用我的上面的邏輯上傳,我需要一種方式讓它成爲v5而不是v3。現在的方式是,它在v2之後循環並停止並再次創建v3。

感謝您的幫助!

+1

匹配。 – Casey

+0

將文件保存到您正在使用的每個目錄並存儲下一個計數器值。您也可以爲每個文件名模式或擴展名存儲不同的計數器值。 – Plutonix

回答

0

您可以從Directory.GetFiles(path, searchPattern)獲得與filename_v*.ext匹配的所有文件的數組。

Dim files As String() = Directory.GetFiles("c:\SomePath", "filename_v*.ext") 

_v後解析出數字,命令他們,然後通過模式,而不是僅僅增加盲目服用最高+ 1

+0

非常感謝Eric。我創建了一個Integer類型的列表,並在解析數字後將其添加到它。然後,我搜索列表中的最大數量並添加1。很棒! – user1447679

+0

很高興爲你效勞。 –