Thread Verzeichnis rekursiv auslesen und in Datenbank schreiben
(39 answers)
Opened by Anton at 2012-05-15 08:38
Ungetestet:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 #!/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"); Last edited: 2012-05-25 12:59:33 +0200 (CEST) |