首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

创建的文本已存在,就在文件名后面加(2)(3)这样如何实现

2013-03-16 
创建的文本已存在,就在文件名后面加(2)(3)这样怎么实现我要创建txt或excel文档、如果我创建的文件名已存在,

创建的文本已存在,就在文件名后面加(2)(3)这样怎么实现
我要创建txt或excel文档、
如果我创建的文件名已存在,则在文件名后面加编号创建。
如a已存在,创建a(2),如果在创建则a(3)。。。。。
在线等,求解释
[解决办法]

Function GetNewFileName(ByVal PathWithoutExt As String, ByVal Ext As String) As String
    Dim sFileName As String
    Dim i As Long
    
    i = 1
    sFileName = PathWithoutExt & Ext
    While Dir(sFileName) <> ""
        i = i + 1
        sFileName = PathWithoutExt & "(" & i & ")" & Ext
    Wend
    
    GetNewFileName = sFileName
End Function

'调用方式
sFileName = GetNewFileName("D:\a",".txt")

[解决办法]
从创建文件的源头就开始考虑这个问题,就不会有楼主这个问题,比如,要创建一系列的文件,名称格式如下:
2013-03-13-xxx,这xxx就是文件的编号,那么你可以在程序中设置一个变量用于对应这个xxx,当是第一个文件时,就是2013-03-13-001,第二个时是:2013-03-13-002,依次类推,这样就避免了创建了文件再去改名的问题。
[解决办法]

Option Explicit

Private Sub Command1_Click()
Dim strPath As String, strFile As String, i As Integer

strPath = "c:\test"
strFile = "a.txt"
i = 1
Do Until Dir(strPath & strFile) = ""
    i = i + 1
    strFile = "a(" & IIf(i > 1, CStr(i), "") & ").txt"
Loop

Open strPath & strFile For Output As #1
Close #1
End Sub

热点排行