Solved

Vbscript to check if the directory is empty

Posted on 2007-11-18
4
7,771 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

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
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 …

744 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now