Hi, The following code doesn't recognize dirs. As I list the dir into the XML, it shows dirs as ordinary files.
Like the -d would not work. If I add an extra branch to recognize files with -f, it doesn't print either files at all nor dirs. sub Traverse { opendir(DIR, $dir) or die "Cannot open directory $dir: $!\n"; my @files = readdir(DIR); closedir(DIR); foreach my $file (@files) { # generate XML here next if (($file eq '.') || ($file eq '..')); print $file; if((-d $file) and ($file !~ /^\.\.?$/) and ($file ne ".") and ($file ne "..")) { # make dir branch $writer->startTag("Folder", "Name" => $file); Traverse($file); $writer->endTag("Folder"); } else { $writer->emptyTag("Object", "Name" => $file); # make file branch } } } Tamas