perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




11.02.2012 / 07:22

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDatei anlegen und löschen
Seitenanfang
Hi Perlprogramierer,
ich möchte ein Program schreiben das eine Datei in C:/ProgramFiles/meineDatei automatisch erzeugt(und gleisch danach löscht er sie) jedes mal wenn ich das Program ausführe. und wenn er das nicht kann ( wegen zugriffsrechte) kommt ein PopupFenster mit irgendwas "geht nicht z.BSP".
ich habe es so versucht aber leider funktioniert nicht. Könnt ihr mir bitte helfen?

#!/usr/local/bin/perl -w

use strict;
use warnings;
use Tk;
use File::Path; # Standardmodul

my $fenster = MainWindow->new();

#Eine Datei bzw. Ordner irgendwo erzeugen:
open(mkdir("/Program Files/Zzzz/", 0777)) or
my $popup = $fenster->Toplevel();
$popup-> Label(-text =>"PC Rights??")->pack();
$popup->Button(-text =>'close',
-command => sub { $popup->destroy() } )->pack;
#--------------------------------------
rmtree("/Program Files/Zzzz"); # löschen

Datum: 28.03.2007-15:21

Beitragre: Datei anlegen und löschen
Seitenanfang
Das macht für mich irgendwie kein Sinn.
Du legst ein Verzeichnis an und wenn ein Fehler auftritt informierst du den Benutzer - das ist ja noch logisch. Aber warum versuchst du danach das Verzeichnis wieder zu löschen, wenn es doch gar nicht angelegt werden konnte?

Besser ist es, dass man zuvor überprüft ob event. das Verzeichnis schon existiert, wie im Code unten. Weiterhin würde ich überprüfen ob das Verzeichnis in das das neue Verzeichnis angelegt werden soll schreibbar ist, etc.


#!/usr/bin/perl

use strict;
use warnings;

use Tk;
use Tk::Dialog;

my $mw = MainWindow->new();

$mw->Label(-text => 'Verzeichnis:')->pack();
my $entry = $mw->Entry()->pack();
$mw->Button(-text => 'Erstelle Verzeichnis',
-command => [\&create_dir, $mw, $entry])->pack();

MainLoop();

sub create_dir {
my($mw, $entry) = @_;

my $dir = $entry->get();

if(-e $dir) {
my $msg = "Konnte Verzeichnis nicht erstellen, existiert bereits!\n";
$mw->Dialog(-text => $msg)->Show();

return;
}

unless(mkdir($dir)) {
my $msg = sprintf("Konnte Verzeichnis nicht erstellen: %s\n", $!);

$mw->Dialog(-text => $msg)->Show();

return;
}

$mw->Dialog(-text => 'Verzeichnis wurde erstellt');
}


Datum: 29.03.2007-18:48

Beitragre: Datei anlegen und löschen
Seitenanfang
Deine Lösung finde ich sehr gut und so habe ich mir das auch am Anfang gemacht nur halt das muss im hintergrund laufen und der user soll nichts davon bekommen .Außer wenn er keine AdminRechte hat dann kommt dieses Fenster mit der Info...

mir dem Program unten habe ich es gelöst und funktioniert prima :)
danke dir nochmal für deine sehr informative Infos.

#!/usr/bin/perl

use warnings;
use strict;
use Tk;
#------- Pre AdminCheck -----------------------
mkdir("I:/Program Files/Zzzz/", 0777) ;
rmdir("C:/Program Files/Zzzz/") or die &WindowInfo();
#------ WindowInfo ----------------------------
sub WindowInfo
{
my $mw = MainWindow->new();
my $text = $mw->Label(-text => 'Error : More PC rights necessery'......
......
MainLoop;
print " More PC rights necessery \n";
}

Datum: 30.03.2007-11:07

-






-
-