#!/usr/bin/perl use strict; use warnings; $| = 1; use File::Find; use File::Spec; use Text::CSV; # Verzeichnis von Kommandozeile holen my $verzeichnis = shift(@ARGV) || 'C:\Users\Student\Desktop\Dropbox\Dropbox\AZ Darmstadt'; my $csv_name = shift(@ARGV) || 'C:\Users\Student\Desktop\dir.csv'; # Array für die gefundenen Dateien my @dateien; my $id = 0; my $parent; my %ids; sub wanted { if ( $_ ne '..' ) { $ids{$File::Find::name} = $id; $parent = $File::Find::dir; push @dateien, { id => $id++, fullname => $File::Find::name, name => $_, parent => $parent, parentid => $ids{$parent}, size => ( stat($File::Find::name) )[7], mtime => ( stat($File::Find::name) )[9] }; } } # Dateien einlesen find( \&wanted, File::Spec->rel2abs($verzeichnis) ); my $csv = Text::CSV->new( { eol => $/ } ); open( my $cvsfh, '>', $csv_name ) or die("ERROR open $csv_name $!\n"); print $cvsfh "#fullname,name,size,id,pid,mtime\n"; for my $datei (@dateien) { $csv->print( $cvsfh, [ $datei->{fullname}, $datei->{name}, $datei->{size}, $datei->{id}, $datei->{parentid}, $datei->{mtime} ] ); } close( $cvsfh ) or die("ERROR close $csv_name $!\n");