VB,如何在保存文件时,碰到文件名重复,则在文件名后加序号后保存?

比如说若文件夹中已有文件名为张三的文件,要保存新的名为张三的文件,则将张三的文件保存为张三1,如果再有张三的文件要保存,则保存为张三2、张三3等等,以此类推。

遍历文件夹下面的文件,并统计文件名与“张三”开头的个数,
然后保存文件时,在后面加这个统计的数量,注意如果个数为0,则不加。追问

怎么做呢?

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-18
Private Function GetFilePath(FilePath As String) As String
Dim FolderPath As String, FileName As String, FileType As String
Dim n As Long

GetFilePath = FilePath
FolderPath = Left(FilePath, InStrRev(FilePath, "\"))
FileName = Mid(FilePath, InStrRev(FilePath, "\") + 1, InStrRev(FilePath, ".") - InStrRev(FilePath, "\") - 1)
FileType = Right(FilePath, Len(FilePath) - InStrRev(FilePath, ".") + 1)

If Dir(FilePath) <> "" Then
Do
n = n + 1
If Dir(FolderPath & FileName & CStr(n) & FileType) = "" Then Exit Do
Loop
GetFilePath = FolderPath & FileName & CStr(n) & FileType
End If
End Function追问

不太理解其意思啊,是不是可以简单解释一下?我是要保存图片,有一样名字的图片则在名字后面加序号保存。

追答

比如,你想把文件保存为“D:\张三.jpg”

FilePath="D:\张三.jpg"
则,想要保存的文件夹为:
FolderPath="D:\"
文件类型为:
FileType=".jpg"
文件名为:
FileName="张三"

程序先判断是否存在"D:\张三.jpg",
如果不存在,那就保存为"D:\张三.jpg"。
如果存在,就判断"D:\张三1.jpg"是否存在,...
一直到判断"D:\张三n.jpg"不存在为止。
...

本回答被提问者采纳
第2个回答  2012-02-18
用if条件语句做追问

不知道怎么做,无头绪。

VB中如何让多个格式相同的文件连成一个文件并加序号
'首先,在窗体上添加控件:List1,Command1,Command2 Private Sub Form_Load()Command1.Caption = "合并文件"Command2.Caption = "抽取文件"'将要合并的的文件添加到一个 List1 控件中 List1.AddItem "C:\\My1.txt"List1.AddItem "C:\\My2.txt"'...End Sub Private Sub Command1_Click()'...

VB 我想把某个文件夹的所以文件改成数字 要按顺序排列
要按你你说的那样的顺序其实等于无序,比较麻烦。电脑默认是有顺序的:如按字母、按数字等等。批量重命名(包括在原有文件名上统一加一个序号或数字或任意代码)倒是非常简单的。

如何批处理?多个文本文件,以文件名替换文件中某个字段?
Echo !var!>>"%~dp0%%~na_new%%~xa"))Pause把批处理和文本文件放在一起,运行

VB中filecopy函数问题
很简单啊,定义个变量来拼凑目标文件名就好了 Sub main()dim DestDir, DestName as string DestDir = "C:\\Documents and Settings\\Administrator\\桌面\\"For i = 1 To 200 DestName = DestDir & i & ".txt"FileCopy "d:\\1.txt", DestName Next i End Sub ...

VB TXT文件内容分割
关闭 #文件序号'就是保存文件 文件序号 = 文件序号 + 1 文件名 = 转换(文件序号)Open open app.path & "\\" & 文件名 & ".txt" for read as #文件序号 else line input #文件序号,每行的内容 end if wend function boolean 内容判断(String 每行的内容)if 每行的内容.开头第一个汉字...

用VB怎样实现关键字的上面一行自动加序号?
''text1输入关键字,点按钮后,text2就会打印出你想要的东东啦!''对了 - - 别把text1跟text2又搞反了!!''还有,下面的C:\\1.txt是你的文件路径...你根据情况自己改!Private Sub Command1_Click()Dim x As String Dim n As Integer Dim s(100) As String Open "C:\\1.txt" For Input ...

vb导出EXCEL后按顺序合并单元格
然后序号,日期,送货处合并起来是不?这样不难啊,你都已经会VB了,做个循环就行了,这样还不会?奇怪?只要你找到相同的行,然后把它们放在一起,设置一下单元格区域的属性就可以了,例如:Range("A1:A2").MergeCells=True 合并以后再做个循环把序号和单号排一下,这样不用教了吧。

vb 二进制文件读写疑惑(高低位),位置
你说的没错,低位在前高位在后是自从Intel 8088\/86、Z80、苹果II(不是手机,而是最早的苹果个人电脑)的6502这些八位CPU开始就这样规定了,虽然一代一代发展到了64位甚至128位的CPU时代,但软件必须一直向前兼容的,所以这个数据存储的规定没有变化。VB没有专门函数处理,自己写呗。参考:http:\/\/...

vb怎样读取文件夹中含有某一字符的最新的文本文档
FileSystemObject对象有关文件夹的方法:CreateFolder :创建一个文件夹 。DeleteFolder:删除一个文件夹 。MoveFolder :移动一个文件夹 。CopyFolder:复制一个文件夹 。FolderExists: 查找一个文件夹是否在驱动器上 。GetFolder :获得已有Folder对象的一个实例 。GetParentFolderName: 找出一个文件夹的父文件夹的名称。Get...

文件快速排序快捷键(电脑文件排序快捷键)
如果在操作中出现失误,可以按Ctrl+Z进行撤销,重新修改即可!07如果只想排序不想修改文件名,可以Ctrl+a(全选)---F2---在文件名最后输入空格---回车08这样文件会根据序号排序啦!2. 电脑快捷方式排序电脑系统的文件\/文件夹默认是不允许手动排序的(即自定义排列),桌面的除外。默认排序:数字优先级大于字母大于汉字....

相似回答