Live coverage of Fall Internet World '99! logo

internet.com
Join the free
WDVL newsletter!

home

Opening, Reading and Closing Directories

Opening, Reading and Closing Directories

  • Just like files, Perl gives you the ability to manage directories. Specifically, Perl allows you to open a directory as a directory handle, read in the current contents of the directory and then close it again.

  • To open a directory, you use the following syntax:

    opendir ([FILE_HANDLE_NAME],
    "[directory_location]") || 
    &CgiDie ("Can't
    open [directory_location]"); 
    

  • Thus, for example, you might open the directory "/usr/local/etc/www/" with the syntax:

    opendir (WWW, "/usr/local/etc/www/") ||
         &CgiDie ("Can't open www"); 
    

  • As you can see, like opening files, Perl allows the program to die elegantly in case there is a problem opening the directory. Also, as with file manipulation, you must close a directory after you are done with it using the syntax:

    closedir ([FILE_HANDLE_NAME]); 
    

  • For example, to close the directory opened above, you use the command:

    closedir(WWW); 
    

  • Once you have opened a directory, you can also read the contents of the directory with the readdir function. For example, the following code snippet assigns all of the filenames in the www directory to @filenames:

    opendir (WWW, "/usr/local/etc/www/") || 
    &CgiDie ("Can't open www");
    @filenames = readdir (WWW);
    closedir (WWW);
    

If you want to avoid including the "." (current directory) and ".." (root directory) files you can use the grep function to avoid including them in the readdir function using the syntax:

@filenames = grep (!/^\.\.?$/, readdir (FILE_HANDLE_NAME));

Additional Resources:

Getting Information About a File With stat
Table of Contents
Perl Libraries

Up to => Home / Authoring / Scripting / Tutorial

Instantly look up a "techie" word using Webopedia!!


internet.com
e-commerce
WebDeveloper Network



Copyright 1999 internet.com Corporation. Legal Notices. Privacy Policy.

www.internet.com