2017-07-12 33 views
0
Set oFSO = CreateObject("Scripting.FileSystemObject") 

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

Set oFolder = oFSO.GetFolder(sDirectoryPath) 
Set oFileCollection = oFolder.Files 

If oFile.Size > 20000000 And ofile.Filename = "nor.dotm Then 
    oFile.Delete(True) 
End If 

拋出錯誤請建議刪除特定文件,如果文件大小更然後20MB,並指定文件名

+1

OFILE從未宣佈或分配到任何東西。如果您想爲特定文件執行此操作,請使用GetFile而不是GetFolder。 nor.dotm附近缺少引用。 –

+0

你能幫我嗎 – SAH

+0

文件名或.Dotm兩者都OK – SAH

回答

0

我相信,你想通過循環,這是比大小20MB更大刪除該文件夾中的所有文件。

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 

如果你想只刪除特定文件,

設置OFSO =的CreateObject( 「Scripting.FileSystemObject的」)

sDirectoryPath = "C:\Users\Desktop\z\" 
FileName = "MyFile.Txt" 

'set oFolder = oFSO.GetFolder(sDirectoryPath) 

set ofile = oFSO.GetFile(sDirectoryPath & FileName)  


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

    oFile.Delete(True) 

End If 
+0

如果大小20mb和擴展名或文件名匹配則刪除該文件,寫log日誌文件中刪除的特定文件 – SAH

+0

您現在需要額外的代碼? –

+0

好的,我會添加並檢查謝謝你mithilesh – SAH

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 
+0

謝謝你的支持 – SAH

相關問題