Solved

Vbscript to check if the directory is empty

Posted on 2007-11-18
4
8,067 Views
Last Modified: 2008-05-19
HI, I would just like to ask for a vbscript code to check if the directory is empty.. if it is not empty it will execute a specific program.
0
Comment
Question by:oracle_beginner
  • 2
4 Comments
 
LVL 13

Expert Comment

by:samic400
ID: 20309777
I use all the time in ASP like so:

<%
dim fs,fo,x,i
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("<your folder name>")

i = 0

for each x in fo.files
    i = i + 1
next
set fo=nothing
set fs=nothing

if i > 0 then
   'you found a file
end if


%>
0
 
LVL 92

Accepted Solution

by:
Patrick Matthews earned 125 total points
ID: 20309793
Hello oracle_beginner,

You need to check both files AND subfolders.

Dim fso, fld

Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder("c:folder\subfolder")

If fld.Files.Count + fld.SubFolders.Count = 0 Then
    MsgBox "Empty"
Else
    MsgBox "Not Empty"
End If

Set fld = Nothing
Set fso = Nothing


Regards,

Patrick
0
 

Author Comment

by:oracle_beginner
ID: 20310911

 how do we execute a dos base application?
0
 
LVL 13

Assisted Solution

by:samic400
samic400 earned 125 total points
ID: 20311053
option Explicit
   
'//public Constants
public Const NORMAL_PRIORITY_CLASS = &H20&
public Const INFINITE = -1&
   
'//public Types
public Type STARTUPINFO
   cb as Long
   lpReserved as string
   lpDesktop as string
   lpTitle as string
   dwX as Long
   dwY as Long
   dwXSize as Long
   dwYSize as Long
   dwXCountChars as Long
   dwYCountChars as Long
   dwFillAttribute as Long
   dwFlags as Long
   wShowWindow as Integer
   cbReserved2 as Integer
   lpReserved2 as Long
   hStdInput as Long
   hStdOutput as Long
   hStdError as Long
End Type
   
public Type PROCESS_INFORMATION
   hProcess as Long
   hThread as Long
   dwProcessID as Long
   dwThreadID as Long
End Type
   
'//API Declarations
public Declare Function WaitForSingleObject Lib "kernel32" (byval _
   hHandle as Long, byval dwMilliseconds as Long) as Long
   
public Declare Function CreateProcessA Lib "kernel32" (byval _
   lpApplicationName as Long, byval lpCommandLine as string, byval _
   lpProcessAttributes as Long, byval lpThreadAttributes as Long, _
   byval bInheritHandles as Long, byval dwCreationFlags as Long, _
   byval lpEnvironment as Long, byval lpCurrentDirectory as Long, _
   lpStartupInfo as STARTUPINFO, lpProcessInformation as _
   PROCESS_INFORMATION) as Long
   
public Declare Function CloseHandle Lib "kernel32" (byval _
   hObject as Long) as Long



   
Put This Code In A Form (Form1):

private Sub Command1_Click()
    Dim AppToRun as string
    Dim ParamForApp as string
    Dim CmdLine as string
       
    '//set Application to Run
    AppToRun = "C:\WINNT\System32\CMD.exe"
       
    '//set Command Line Parameters
    '//The "/C" Tells Windows to Run The Command then Terminate
    '//The Command Line (CMD.exe)
    ParamForApp = " /C MD New_Folder" '//Make new Directory Called 'New_Folder'
       
    '//Build Command string
    CmdLine = AppToRun & ParamForApp
       
    '//Shell App And Wait for It to Finish
    ExecCmd CmdLine
           
End Sub
   
public Sub ExecCmd(CmdLine as string)
    Dim Proc as PROCESS_INFORMATION
    Dim start as STARTUPINFO
    Dim ReturnValue as Integer
       
    '//Initialize The STARTUPINFO Structure
    start.cb = len(start)
       
    '//Start The Shelled Application
    ReturnValue = CreateProcessA(0&, CmdLine, 0&, 0&, 1&, _
       NORMAL_PRIORITY_CLASS, 0&, 0&, start, Proc)
       
    '//Wait for The Shelled Application to Finish
    Do
       ReturnValue = WaitForSingleObject(Proc.hProcess, 0)
       DoEvents
    Loop Until ReturnValue <> 258
       
    '//Close Handle to Shelled Application
    ReturnValue = CloseHandle(Proc.hProcess)
       
End Sub
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A short article about a problem I had getting the GPS LocationListener working.
If you’re thinking to yourself “That description sounds a lot like two people doing the work that one could accomplish,” you’re not alone.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …

791 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question