Schrift
[thread]5752[/thread]

Kopieren in ein Verzeichnis

Leser: 2


<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
joey
 2003-09-24 17:24
#55632 #55632
User since
2003-09-24
3 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich möchte eine Detei in ein Verzeichnis kopieren und hab mir gedacht es geht so:
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl -w
use strict;
use warnings;
use File::Copy;
my $dir = 'f:\';
my $file = 'all.txt';
copy("$file", "$dir")
or die "Kopieren fehlgeschlagen: $!";


Geht aber leider nicht. Kann ich Dateien nicht in einfach so in ein Verzeichnis kopieren, muss ich dafür einen Dateinamen angeben?

Gruss joey
Ishka
 2003-09-24 18:12
#55633 #55633
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das gibt einen Syntax-error - den du vermeiden könntest, wenn du entweder Syntax-Highlighting verwenden würdest, oder / statt \ für Dateitrenner - womit das auch kompatibel für andere Systeme wird. \' ist nämlich das Zeichen ' und nicht das Zeichen \ gefolgt vom Ende des Strings ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
-Sven-
 2003-10-23 15:55
#55634 #55634
User since
2003-10-15
25 Artikel
BenutzerIn
[default_avatar]
Geht auch so:

qx(cp all.txt f:/);
havi
 2003-10-23 16:02
#55635 #55635
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Teste mal:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

use strict;
use warnings;
use File::Copy;

my $dir = 'f:/';
my $file = 'all.txt';
copy("$file", "$dir") or die "Kopieren fehlgeschlagen: $!";

1;


Gruss\n\n

<!--EDIT|havi|1066910625-->
havi
 2003-10-23 16:05
#55636 #55636
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=-Sven-,23.10.2003, 13:55]Geht auch so:

qx(cp all.txt f:/);[/quote]
Ist Systemabhaengig und somit nicht so gut...
utang
 2004-01-03 19:04
#55637 #55637
User since
2004-01-03
30 Artikel
BenutzerIn
[default_avatar]
ich habe zu dem selben Thema ein Problem und zwar hänge ich gerade an einer Funktion fest. Diese Funktion liest den aktuellen Dateinamen ein ($name) und soll ihn kopieren. Aber die kopie dieser Datei soll in ein anderes Verzeichnis abgelegt werden,nur komme ich mit der zusammen setzung der variablen $DST_DIR und $name nicht ganz klar.

Code: (dl )
1
2
3
4
5
6
7
8
9
sub Fluxfwrite {
open(EIN,"$name") or die "Kann nicht zum lesen öffnen: $!\n";
open(AUS,"$DST_DIR"">$name") or die "Kann bla nicht finden: $!\n";
while (<EIN>) {
print AUS $_;
}
close(EIN) or die "Kann $name nicht schließen: $!\n";
close(AUS) or die "Kann bla nicht schließen: $!\n";
};


Das Problem liegt quasi für mich in der 2ten Zeile $DST_DIR zusammen gesetzt mit dem namen in $name und dem Zeichen für das Dateihandle schreiben ">" ...

hat wer eine Idee?
pq
 2004-01-03 19:37
#55638 #55638
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
1. benutze File::Copy, anstatt die dateien von hand zu schreiben.
2. strings werden mit dem "."-operator zusammengesetzt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
[E|B]
 2004-01-03 19:51
#55639 #55639
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
HiHo!

Code: (dl )
1
2
system("cp file.txt C:/") if($^O =~ /win/i);
system("copy file.txt ~/files") if($^O !~ /win/i);


Quick 'n dirty! 8)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
pq
 2004-01-03 20:07
#55640 #55640
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
@eb: wieso system nehmen, wenn's mit File::Copy einfacher und betriebssystem-unabhängig geht?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
utang
 2004-01-03 20:31
#55641 #55641
User since
2004-01-03
30 Artikel
BenutzerIn
[default_avatar]
ok, danke das mit dem File::Copy klappt besser und ist übersichtlicher allerdings sitze ich nun vor nem kleinen anderen problem, im ganzen funktioniert meine funktion nur hat es ne kleine macke. Ich habe mich vlt. irgendwo verzettelt und sitze wahrscheinlich auf der Leitung...

Code: (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
use Cwd; #Modul zum Ermitteln des aktuellen Verzeichnisses
use File::Copy;

$DST_DIR = "/home/tmarsh/.fluxbox/";
$SRC_DIR = "/usr/portage/x11-wm/fluxbox";

mkdir("$DST_DIR",0755) or die "kann $DST_DIR nicht erstellen: $!\n";
&Fluxfscan("$SRC_DIR");

sub Fluxfscan {
my ($workdir) = shift;
my ($startdir) = &cwd;

chdir($workdir) or die "Kann nicht in $workdir wecheseln: $!\n";
opendir(USR,".") or die "Kann $workdir nicht öffnen: $!\n";
my @names = readdir(USR);
closedir(USR);

foreach my $name (@names) {
next if ($name eq ".");
next if ($name eq "..");

print "$name\n";

if (-d $name) {
mkdir("$DST_DIR"."$name",0755) or die "Kann $name nicht anlegen\n";
&Fluxfscan($name);
next;
}
copy("$name","$DST_DIR");
}
chdir($startdir) or die "Kann nicht in $startdir wechseln: $!\n";
}


Problem:

Das $SRC_DIR hat folgenden Aufbau:
- datei
- datei
- datei
- verzeichnis - #auch noch mal datein
- datei

in mein $DST_DIR werden alle Dateien kopiert:
- sowohl die aus dem haupt $SRC_DIR,was ja stimmt
- und die datein aus dem verzeichnis, das verzeichnis selbst wird angelegt aber bleibt leer

Somit habe ich nun folgendem Aufbau in meinem $DST_DIR:

- datei
- datei
- datei
- Verzeichnis (leer)
- datei
- datei aus dem Verzeichnis
- datei aus dem Verzeichnis
....

Ich sitz bestimmt nur auf der Leitung , vlt. hat wer eine Lösung für mich ...\n\n

<!--EDIT|utang|1073155026-->
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2003-09-24 17:24.