Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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"? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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... |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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\*.*") |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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"? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
importing files from a directory | Excel Programming | |||
List of Files in A Directory | Excel Discussion (Misc queries) | |||
Files in a directory? | Excel Discussion (Misc queries) | |||
Renaming adding and deleting directory | Excel Programming | |||
Check if directory empty OR no of files in directory. | Excel Programming |