![]() |
Deleting files in a directory
I have a process that creates csv files in a directory, however a byproduct
is an identical log file, e.g. 5C015000. If you were to rename the file with a .xls extension, it would be exactly the same as the csv that I'm saving. It has no extension and is file type "File". If the directory were C:\GLPVC\ what code can I use to loop through all files in the directory (there may be hundreds) and delete all files that begin with a numeric character or whose file type is "File"? |
Deleting files in a directory
On Jun 7, 3:15 pm, Sam wrote:
I have a process that creates csv files in a directory, however a byproduct is an identical log file, e.g. 5C015000. If you were to rename the file with a .xls extension, it would be exactly the same as the csv that I'm saving. It has no extension and is file type "File". If the directory were C:\GLPVC\ what code can I use to loop through all files in the directory (there may be hundreds) and delete all files that begin with a numeric character or whose file type is "File"? Here try this... Function DeleteFiles(MyWildcard As String) As Long Dim Match Match = Dir(MyWildcard) If Len(Match) 0 Then Do MsgBox Match Match = Dir Loop Until Len(Match) = 0 End If End Function You will call it with a line that looks like... Call DeleteFiles("C:\My Docs\*.*") Now, instead of the line that reads... MsgBox Match ....put a line that reads... Kill Match You would effectively be going through the folder one file at a time and looking for a file size greater than 0. Any that match this criteria get the ax. You can further make this dynamic by adding rules to this code... |
Deleting files in a directory
On Jun 7, 3:34 pm, JohnELaw wrote:
On Jun 7, 3:15 pm, Sam wrote: I have a process that creates csv files in a directory, however a byproduct is an identical log file, e.g. 5C015000. If you were to rename the file with a .xls extension, it would be exactly the same as the csv that I'm saving. It has no extension and is file type "File". If the directory were C:\GLPVC\ what code can I use to loop through all files in the directory (there may be hundreds) and delete all files that begin with a numeric character or whose file type is "File"? Here try this... Function DeleteFiles(MyWildcard As String) As Long Dim Match Match = Dir(MyWildcard) If Len(Match) 0 Then Do MsgBox Match Match = Dir Loop Until Len(Match) = 0 End If End Function You will call it with a line that looks like... Call DeleteFiles("C:\My Docs\*.*") Now, instead of the line that reads... MsgBox Match ...put a line that reads... Kill Match You would effectively be going through the folder one file at a time and looking for a file size greater than 0. Any that match this criteria get the ax. You can further make this dynamic by adding rules to this code... Actually, you can remove the part that says as long...then you could use it like... Call DeleteFiles("C:\My Folder\*.*") |
Deleting files in a directory
You can also use the FileSystemObject object for that.
Loop through the files in C:\GLPVC\ , check if the file type is "Type" and the first character in the file name is numeric, and, if so, delete the file: Sub deleteFiles() fPath = "C:\GLPVC\" Set fso = CreateObject _ ("Scripting.FileSystemObject") Set folder = fso.GetFolder(fPath) For Each file In folder.Files If file.Type = "File" And _ IsNumeric(Left(file.Name, 1)) Then Debug.Print file.Name 'file.Delete End If Next Set folder = Nothing Set fso = Nothing End Sub Instead of checking the file type, you can delete all the files without extension: Sub deleteFiles1() fPath = "C:\GLPVC\" Set fso = CreateObject _ ("Scripting.FileSystemObject") Set folder = fso.GetFolder(fPath) For Each file In folder.Files If fso.GetExtensionName(file) = "" And _ IsNumeric(Left(file.Name, 1)) Then Debug.Print file.Name 'file.Delete End If Next Set folder = Nothing Set fso = Nothing End Sub -- urkec "Sam" wrote: I have a process that creates csv files in a directory, however a byproduct is an identical log file, e.g. 5C015000. If you were to rename the file with a .xls extension, it would be exactly the same as the csv that I'm saving. It has no extension and is file type "File". If the directory were C:\GLPVC\ what code can I use to loop through all files in the directory (there may be hundreds) and delete all files that begin with a numeric character or whose file type is "File"? |
All times are GMT +1. The time now is 09:07 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com