0

hi guys, I have this code which I get from the link below.

http://stackoverflow.com/questions/3826963/php-list-all-files-in-directory

Need your help, why the current directory is the directory of the root server.

Like i'm using WAMP for windows.

The current directory for this code below that is recognizing is:
c:\wamp

I want the code to default the directory to:
c:\ so I can specify any folder on c drive

How do I change this code below to specify the directory to c:\ ?

Thanks in advance for any help.

<?php

/**
 * Recovers folder structure and files of a certain path
 * 
 * @param string $path Folder where files are located
 * @param string $pattern Filter by extension
 * @param string $flags Flags to be passed to the glob
 * @return array Folder structure
 */
function getFolderTree($path)
{
    //Recovers files and directories
    $paths = glob($path  . "*", GLOB_MARK | GLOB_ONLYDIR | GLOB_NOSORT);
    $files = glob($path  .  "*");

    //Traverses the directories found
    foreach ($paths as $key => $path)
    {
        //Create directory if exists
        //$directory = explode("\\", $path);
        $directory = explode("\\", $path);
        unset($directory[count($directory) - 1]);
        $directories[end($directory)] = getFolderTree($path);

        //Verify if exists files
        foreach ($files as $file)
        {
            if (strpos(substr($file, 2), ".") !== false)
                $directories[] = substr($file, (strrpos($file, "\\") + 1));
        }
    }

    //Return the directories
    if (isset($directories))
    {
        return $directories;
    }
    //Returns the last level of folder
    else
    {
        $files2return = Array();
        foreach ($files as $key => $file)
            $files2return[] = substr($file, (strrpos($file, "\\") + 1));
        return $files2return;
    }
}

/**
 * Creates the HTML for the tree
 * 
 * @param array $directory Array containing the folder structure
 * @return string HTML
 */
function createTree($directory)
{
    $html = "<ul>";
    foreach($directory as $keyDirectory => $eachDirectory)
    {
        if(is_array($eachDirectory))
        {
            $html .= "<li class='closed'><span class='folder'>" . $keyDirectory . "</span>";
            $html .= createTree($eachDirectory);
            $html .=  "</li>";
        }
        else
        {
            $html .= "<li><span class='file'>" . $eachDirectory . "</span></li>";
        }
    }
    $html .= "</ul>";

    return $html;
}

//Create output
$directory = getFolderTree('..\temp');
$htmlTree = createTree($directory["temp"]);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
        <title>PHP Directories</title>

        <link rel="stylesheet" href="http://jquery.bassistance.de/treeview/jquery.treeview.css" />
        <link rel="stylesheet" href="http://jquery.bassistance.de/treeview/demo/screen.css" />

        <script src="http://jquery.bassistance.de/treeview/lib/jquery.js" type="text/javascript"></script>
        <script src="http://jquery.bassistance.de/treeview/lib/jquery.cookie.js" type="text/javascript"></script>
        <script src="http://jquery.bassistance.de/treeview/jquery.treeview.js" type="text/javascript"></script>

        <script type="text/javascript" src="http://jquery.bassistance.de/treeview/demo/demo.js"></script>

    </head>
    <body>
        <div id="main">
            <ul id="browser" class="filetree">
                <?php echo $htmlTree;?>
            </ul>
        </div>
    </body>
</html>
2
Contributors
2
Replies
27
Views
4 Years
Discussion Span
Last Post by cguan_77
0

Just skimmed this:

@param string $path Folder where files are located

So, change the $path var to what you want?

0

to specify a path folder need to change this line:

$directory = explode("\", $path);

to

$directory = explode("Directory_Separator", $path);

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.