VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



The Daily Newbie Using the Dir() Function

by Matthew Roberts (26 Submissions)
Category: Coding Standards
Compatability: Visual Basic 3.0
Difficulty: Beginner
Date Added: Wed 3rd February 2021
Rating: (5 Votes)

Explains the basics of using the Dir() command to get file and folder information.

Rate The Daily Newbie Using the Dir() Function


The Daily Newbie




To Start 
   Things Off Right





Today's 
   Topic: 


Using the Dir 
 Command



Name 
   Derived From 


"Directory"



Used 
   For: 


Getting Information about a 
   particular folder or file.



VB Help 
   File Description  


Returns a String representing 
   the name of a file, directory, or folder that matches a specified pattern 
   or file attribute, or the volume label of a drive. Syntax 



Plain 
   English Description 



Depending on the paramters set, 
   returns:



  • The Name of a file in a folder that matches a 
        patten (*.txt) 
  • The name of a sub folder within a folder. 
  • The name of a hard drive.





  • Usage:


    To get a file name from a 
       directory:   strFile = Dir 
       ("c:\MyFolder\*.txt")


    To get a read-only file name from a directory:   strFile = Dir ("c:\MyFolder\*.txt", 
       vbReadOnly)


    To get a sub-directory from a directory:   strFile = Dir ("c:\MyFolder\*", 
       vbDirectory)


    To get the label of a drive:   strFile = Dir ("d:", 
       vbVolume)





    Parameters:



    • Path - The root directory to search from.
    • Attribute - One of the following VB attribute 
          values: vbNormal (default), vbReadOnly, vbHidden, VbSystem, 
          vbVolume, vbDirectory


     





    Copy 
       & Paste Code:  



    Today's copy and paste code lists 
       all of the files in a directory to the debug window. For details on usage 
       of the Dir ()command in this example, see the Notes below.


      Dim strPathAndPattern As String
        Dim strFileName As String
       
        strPathAndPattern = InputBox("Enter a path and search pattern (ex: c:\windows\*.exe):")
       
        strFileName = Dir(strPathAndPattern)
        Debug.Print strFileName
       
        While strFileName > ""
           strFileName = Dir
             Debug.Print strFileName     
      Wend




    Notes



    • IMPORTANT: To find multiple 
          files, you must do a "two step" proccess. In the example above, notice 
          that the first time Dir() is called (before the While...Wend loop), the 
          parameter strPathAndPatten is used. After that, the call is 
          simply Dir. (strFileName = Dir). This is sort of confusing if 
          you don't know what is going on. When I first used the Dir command, I 
          kept getting the same file name over and over. This is because using 
          Dir() with a path parameter will always return the FIRST match
      . To 
          get subsequent matches, you simply call Dir(). It remembers the last 
          pattern and passes the NEXT match. Really screwy.

    • Dir can be used to see if a file already 
          exists:

               If Dir 
          ("c:\MyFolder\log.txt") > "" 
          Then
                      
          MsgBox "File Already 
          Exists!"
               End 
          If

      This is because Dir() will return an empty string ("") if 
          a match is not found, but will return the file name if a match 
          is found.

    • Dir can also be used to see if a folder exists, but 
          this is a little different. Because of the way Windows handles folder 
          names, there is always a folder named "." and another named ".." . As 
          odd as that seems, these names represent the current folder and the 
          parent folder. So to find out if a certain folder exists, you can do 
          this:

      If Dir ("c:\windows\system", 
          vbDirectory) > ".." Then
           MsgBox "Folder 
          Already Exists!"
      End If

    • For a downloadable project using the Dir command, 
          Click Here


     














    Download this snippet    Add to My Saved Code

    The Daily Newbie Using the Dir() Function Comments

    No comments have been posted about The Daily Newbie Using the Dir() Function. Why not be the first to post a comment about The Daily Newbie Using the Dir() Function.

    Post your comment

    Subject:
    Message:
    0/1000 characters