Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Vbscript to check if the directory is empty

Posted on 2007-11-18
4
Medium Priority
?
8,605 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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 93

Accepted Solution

by:
Patrick Matthews earned 500 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 500 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

Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Computer science students often experience many of the same frustrations when going through their engineering courses. This article presents seven tips I found useful when completing a bachelors and masters degree in computing which I believe may he…
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 …
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

718 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