![]() |
Datei kopieren unter NT rechte ?!
Hallo,
ich will mit meinem programm dateien unter NT kopieren. Ich bin als admin auf dem rechner angemeldet, jedoch gibt es einige ordner, in die nur die user reindürfen. Nun meine frage: Kann ich die rechte irgendwie erwerden? (ich will nichts verändern sondern nur was kopieren) oder Kann ich irgendwie feststellen ob ich (als admin) für den ordner x genügend rechte hab um ihn kopieren zu können? MfG - Ghost007 P.S.: zum kopieren verwende ich folgende funktion:
Delphi-Quellcode:
//Edit:
procedure TForm1.CopyFile(filepath, destination :string);
var f,t:file of byte; buf:array[1..4096] of byte; read:integer; begin assignfile(f,filepath); assignfile(t,destination); reset(f); rewrite(t); while not eof(f) do begin blockread(f,buf,length(buf),read); blockwrite(t,buf,read); ProgressBar1.position:=round(100*filesize(t)/filesize(f)); application.processmessages; end; closefile(f); closefile(t); end; Kann ich durch
Delphi-Quellcode:
oder so des irgendwie testen?
try
assignfile(f,filepath); except //keine rechte end; |
Re: Datei kopieren unter NT rechte ?!
Damit kannst du pürfen, ob du genügend Rechte hast in das Verzeichnis zu schreiben:
![]() |
Re: Datei kopieren unter NT rechte ?!
danke, werd das mal ausprobieren ;)
MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
funktioniert wunderbar, danke :)
MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
Hallo nochmal,
luckie ich hab nun deinen code in der praxis (bei meinem dad) ausprobiert. Leider bekomme ich nicht das gewünschte ergebnis. Folgedes liegt vor: Eine listbox mit datei pfaden. Nun will ich die dateipfadeinträge entfernen, zu denen ich keinen access hab. Das hab ich mir wie folgt vorgestellt:
Delphi-Quellcode:
jedoch wird kein eintrag gelöscht. Dementsprechend bekomme ich auch bei dem versuch eine acces denied datei zu kopieren einen "Access denied" error.
for i:=ListBox1.Items.Count-1 downto 0 do
begin if CheckAccessToFile(GENERIC_WRITE,ListBox1.Items.Strings[i]) = false then begin ListBox1.Items.Delete(i); end; end; Nun meine frage, mach ich beim aufrufen deiner funktion irgend nen fehler? Oder woran kann es dann liegen. MfG - Ghost007 P.S.:Betriebssystem: Windows NT User: hat adminrechte (es gibt aber ordner, in die nur leute im netzwerk reindürfen, nichtmal der admin darf da rein, diese order müssen aus der obigen listbox entfert werden) |
Re: Datei kopieren unter NT rechte ?!
Zitat:
|
Re: Datei kopieren unter NT rechte ?!
Ich glaube, er meinte mit Entfernen das Löschen aus seiner Listbox.
|
Re: Datei kopieren unter NT rechte ?!
genau,
ich lösche die dateie pfade aus der listbox MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
Wie sehen die Einträge denn aus?
|
Re: Datei kopieren unter NT rechte ?!
ja,
z.b. C:/programme/dingens/main.exe MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
Hm... da kann ich keinen Fehler erkennen, ich hatte jetzt relative Pfade vermutet.
|
Re: Datei kopieren unter NT rechte ?!
wie gesagt, ich muss festellen, ob ich die datei in dem pfad mit dem code in post #1 kopieren kann.
MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
*push*
|
Re: Datei kopieren unter NT rechte ?!
Hallo!
Versuche mal Deine Schleife ohne den Check (also einfach nur LIstbox1.Items.Delete(i). Sie sollte die Einträge der Listbox1 komplett löschen - der Code sieht korrekt aus. Wenn es funktioniert muss es irgend etwas mit der Funktion an sich zu tun haben. Das Löschen der Listbox-Einträge ist sicherlich NICHT von den Zugriffsrechten abhängig, solange Du auf die eigentlichen Dateien nicht zugreifst... Du könntest mal Deinen angesprochenen Fehler (Meldung) posten. Evtl. bringt uns das weiter... SCRaT //Edit Ist die entsprechende Listbox vor Aufruf der Schleife mit Einträgen gefüllt? Falls nein, dann könnte der Fehler "weiter oben" in Deinem Programm die Ursache sein. (z.B. Showmessage genau eine Zeile vor die Schleife setzen -> bis zum Showmessage darf dann kein Fehler erscheinen. Ein zweites Showmessage nach der Schleife verrät Dir, ob Du die Schleife ohne Fehler komplett durchlaufen kannst. Damit kannst Du den Fehler weiter eingrenzen) |
Re: Datei kopieren unter NT rechte ?!
Es kommt kein fehler, das irwas mit den listbox items is oder so.
Es kommt der fehler erst beim kopieren. Und zwar kommt ein access denied error. MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
Hmmm, ich glaub ich bin mit meiner Antwort im falschen Thread gelandet - Sorry.
SCRaT |
Re: Datei kopieren unter NT rechte ?!
Macht nix, aber evtl kannste mir ja trotzdem weiterhelfen? ^^
MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
*PUSH*#2
|
Re: Datei kopieren unter NT rechte ?!
Zitat:
Delphi-Quellcode:
Aufruf z.B. mit
Function DirWritable(DestDir : String) : Boolean;
var TestDatei : TFileStream; Begin DestDir := IncludeTrailingPathDelimiter(DestDir); // '\' am Ende des Pfades sicherstellen... Result := False; Try TestDatei := TFileStream.Create(DestDir+'dummy.tmp', fmCreate); Result := True; TestDatei.Free; DeleteFile(DestDir+'dummy.tmp'); // Datei wieder löschen... Except End; {Try..Except} End; { Function }
Delphi-Quellcode:
Ungetestet. Vielleicht hilft Dir das aber etwas weiter...
if DirWritable(Listbox1[5]) Then ShowMessage('Hier kann reingeschrieben werden!')
Else ShowMessage('Zugriff verweigert!'); SCRaT |
Re: Datei kopieren unter NT rechte ?!
hm ... das is ja schön und gut, aber ich will wissen, ob ich genug rechte hab die quelle zu lesen/öffnen.
MfG - Ghost007 P.S.:Trotzdem danke ;) |
Re: Datei kopieren unter NT rechte ?!
Dazu habe ich dir doch Code im zweiten Beitrag gepostet.
|
Re: Datei kopieren unter NT rechte ?!
Zitat:
An sonsten ändere meine Funktion etwas ab:
Delphi-Quellcode:
durch
Function FileAccessable(Dateiname : String) : Boolean;
var TestDatei : TFileStream; Begin Result := False; Try TestDatei := TFileStream.Create(Dateiname, fmOpenRead or fmShareDenyNone); Result := True; TestDatei.Free; Except End; {Try..Except} End; { Function } Eventuell wird ja die Exception auch ausgelöst wenn Du versuchst die Datei mit dieser Funktion zum Lesen zu öffnen. Dabei unterscheidet diese Funktion natürlich nicht, warum die Datei nicht geöffnet werden kann (Rechte, Existenz etc.). Müsstest evtl. halt die Funktion ausbauen - falls es überhaupt interessiert, warum sie nicht gelesen werden kann. Stichwort FileExists(...) könnte z.B. innerhalb der Funktion prüfen, ob die Datei überhaupt (noch) existiert. Sonst sag uns doch, warum Luckies Code von oben jetzt nicht (mehr?) funzt oder was Dein jetztiges Problem von Deinem Problem, das von Luckie (anscheinend) schon gelöst wurde, unterscheidet. Dann können wir Dir bestimmt weiterhelfen! :thumb: SCRaT |
Re: Datei kopieren unter NT rechte ?!
hi,
ich hatte den code daheim auf meinem XP PC getestet, und dann bei meinem dad inner firma, dort hat er nicht mehr funktioniert. Ich bin die liste der paths durchgegeangen und hab jeden mit dem code von luckie gecheckt, jedoch hab ich dann beim kopieren trotzdem einen access denied error bekommen :( MfG - Ghost007 |
Re: Datei kopieren unter NT rechte ?!
Okay, jetzt habe ich das Problem verstanden. Hast es auch schon weiter oben geschrieben - Sorry, muss ich überlesen haben...
Und wie sieht es mit meinem letzten Post aus? Geht auch nicht? :zwinker: SCRaT |
Re: Datei kopieren unter NT rechte ?!
also,
bei mir funktioniert dein letzter post, muss morgen mal bei meim dad testen ;) MfG - Ghost007 P.S.:Danke :) |
Re: Datei kopieren unter NT rechte ?!
Das freut mich (vorerst) mal :-)
Gib aber bescheid, interessiert mich natürlich auch. So long... :thumb: SCRaT |
Re: Datei kopieren unter NT rechte ?!
Hi,
hab das projekt nun schon beerdigt. es is einfacher wenn man das mit ner bandsicherung macht. da es dich awa interessiert ob es so funktioniert. nein tut es nicht :evil: MfG - Ghost007 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz