如果文件大小超过20MB并指定文件名,请删除特定文件

时间:2017-07-12 11:06:23

标签: vbscript

#sql-ee8_272

投掷错误请建议

2 个答案:

答案 0 :(得分:0)

我相信,您希望通过循环删除文件夹中的所有文件,大小超过20MB。

ActionBlock<{--whatever the type of your parameter is--}>

如果您只想删除特定文件,

设置oFSO = CreateObject(&#34; Scripting.FileSystemObject&#34;)

Set oFSO = CreateObject("Scripting.FileSystemObject")

sDirectoryPath = "C:\Users\Desktop\z\"

set oFolder = oFSO.GetFolder(sDirectoryPath)

set oFileCollection = oFolder.Files

For Each ofile in oFileCollection 


 If oFile.Size > 20000000 and ofile.name ="nor.dotm" Then

    oFile.Delete(True)

 End If

Next

答案 1 :(得分:0)

您发布的代码中有几处错误,其中一些错误是Alex K.已经pointed out in the comments

  • 您的参考文件名后缺少双引号。
  • 没有为变量oFile分配任何文件对象。
  • 您枚举目录中的文件,但绝不会遍历该集合。
  • 包含文件对象名称的属性为Name,而不是Filename

如果您只想检查给定文件夹中的特定文件是否超过给定大小,则应使用GetFile而不是遍历文件夹中的所有文件,只需检查文件的大小:

Set fso = CreateObject("Scripting.FileSystemObject")

dir = "C:\Users\Desktop\z"

Set f = fso.GetFile(fso.BuildPath(dir, "nor.dotm"))

If f.Size > 20000000 Then
  f.Delete True
End If

如果要检查具有特定扩展名的文件,则需要实际迭代文件夹中的文件:

Set fso = CreateObject("Scripting.FileSystemObject")

dir = "C:\Users\Desktop\z"

For Each f In fso.GetFolder(dir).Files
  If f.Size > 20000000 And fso.GetExtensionName(f) = "dotm" Then
    f.Delete True
  End If
Next