VBA循环浏览文件夹中的所有文件并删除无效字符

用户名

我找到了替换文件名中的无效字符的函数。我想将其用于一个文件夹中的所有文件。

Function strLegalFileName(strFileNameIn As String) As String
Dim i As Integer

Const strIllegals = "\/|?*<>"":"
strLegalFileName = strFileNameIn
For i = 1 To Len(strIllegals)
    strLegalFileName = Replace(strLegalFileName, Mid$(strIllegals, i, 1), "_")
Next i
End Function

我不知道如何在所有文件中循环并在包含无效内容时替换字符。

调用功能是否正确?通过Debug.print命令,我可以遍历所有文件,但是我不确定如何构建它:

Sub LoopThroughFiles()
  Dim MyObj As Object, MySource As Object, FileName As Variant
  FileName = Dir("C:\Users\Anna\Desktop\testNazwa\")
   While (file <> "")
   Debug.Print strLegalFileName(strFileNameIn)
  file = Dir
  Wend
End Sub
布雷特杰

你有一些问题

  • 你的Dir循环
  • 实际上没有重命名您检查过的文件名

下面的代码执行此操作。请更改StrDir为适合

但我要注意,因为这些字符是ilegal,所以文件名开头应该是无效的(因此,我的测试将查看不同的字符)

循环并重命名代码

Sub LoopThroughFiles()
Dim FName As Variant
Dim strNew As String
Dim strDir As String

strDir = "C:\temp\"
FName = Dir(strDir & "*.*")
Do While Len(FName) > 0
strNew = strLegalFileName(FName)
    If StrComp(strNew, FName) <> 0 Then Name (strDir & FName) As (strDir & strNew)
FName = Dir
Loop
End Sub

字符串替换功能

Function strLegalFileName(ByVal FName) As String
Dim i As Integer

Const strIllegals = "P:"
strLegalFileName = FName
For i = 1 To Len(strIllegals)
    strLegalFileName = Replace(strLegalFileName, Mid$(strIllegals, i, 1), "_")
Next i
End Function

正则表达式功能替代

Function strLegalFileName(ByVal FName) As String
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")

With objRegex
    .Pattern = "[\/\\\?\*\]\[\|:]"""
    .Global = True
    strLegalFileName = .Replace(FName, vbNullString)
End With

End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

循环浏览文件夹中的所有文件

循环浏览文件夹中的所有CSV文件

Shellscript循环浏览文件夹中的所有文件

循环浏览指定目录中的所有文件和文件夹并删除它们

循环浏览文件夹中的所有文件夹并运行命令

成功循环浏览文件夹中的文件,但所有文件均显示损坏的错误

VBA循环浏览具有特定文件名的文件夹中的文件

使用VBA循环浏览文件夹中的文件?

从给定文件夹中的所有文件名中删除所有非法字符

循环浏览所有文件夹并执行脚本

在文件夹及其子文件夹内的所有文件中搜索字符串的vba

循环浏览文件夹中具有不同文件扩展名的所有文件

删除无效字符的文件夹(-编码)

循环遍历文件夹中的所有 .csv 文件

Bash脚本从文件夹中的所有文件名中删除字符

如何从文件夹中删除所有文件?

从递归文件夹中删除所有zip文件

强制删除文件夹中的所有文件

使用PHP从文件夹中删除所有文件?

如何删除文件夹XXX中的所有文件

删除firebase文件夹中的所有文件?

删除我的文件夹中的所有.gitignore文件

如何删除某个文件夹中的所有文件

循环浏览文件夹中的所有Excel文件,并使用SAS提取每个文件的特定单元格

重命名文件夹中的所有文件,删除重复的字符串部分

重命名所有子目录中的文件和文件夹以删除字符

浏览目录中的所有文件夹

删除文件夹中的所有文件和文件夹,以结尾的文件和文件夹为准

如何最好地删除文件夹及其子文件夹中的所有文件