Autor Beitrag
Skinzone
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 04.06.10 15:27 
Morgen kann mir jm. sagen wo ich den Fehler habe?

ausblenden volle Höhe Delphi-Quelltext
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:
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString; 
    Flags: FILEOP_FLAGS): Integer; 
var 
  FromPath, ToPath: AnsiString; 
  SHFileOpStruct: TSHFileOpStruct; 
begin 
  FromPath := aFrom + #0#0
  ToPath := aTo + #0#0
  with SHFileOpStruct do 
  begin 
    Wnd := 0
    wFunc := aOperation; 
    pFrom := PAnsiChar(FromPath); 
    if ToPath <> '' then 
    begin 
      pTo := PAnsiChar(ToPath) 
    end else begin // target available 
      pTo := nil
    end// target not available 
    fFlags := Flags; 
  end// structure 
  Result := SHFileOperationA(SHFileOpStruct); 
end;
procedure TForm1.b_startClick(Sender: TObject);
var
von,zu: string;
begin
  with TIniFile.Create(ExtractFilePath(ParamStr(0)) +  'config.ini'do//TIniFile wird geladen
   try
    von:=ReadString('Pfad','Von',''); //einlesen des von PFades
    zu:=ReadString('Pfad','Zu',''); //einlesen des zu PFades
    if von = '' then
    showmessage('Bitte geben Sie den Pfad des zu kopierenden Verzeichnis an');//ausgabe falss kein von Pfad geschrieben worden ist
    if zu = '' then
    showmessage('Bitte geben Sie den Pfad des Zielverzeichnis an');//ausgabe falss kein von Pfad geschrieben worden ist
   finally
    Free;//Ini wird freigegeben
  end;
    DoFileWork(von , zu);
end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Titel geändert, war: "Inkompatible Typen AnsiChar and Char".
Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 04.06.2010 um 16:09
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 04.06.10 15:33 
Char ist ab D2010 eine WideChar(16Bit) ein AnsiChar hat aber nur 8Bit.
In welcher Zeile tritt den der Fehler auf?

_________________
Markus Kinzler.
Skinzone Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 04.06.10 15:35 
Danke für die schnelle ANtowrt bin langsam echt am verzweifeln.
In der Zeile 13.
Wenn man die Exe startet funktioniert es eig., aber da kommt der Fehler des der Zugriff verweigert wird. Wie kann ich es einstellen das das Programm den Zugriff erlaubt??
mfg
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 04.06.10 15:40 
Welche Typ hat pFrom und PTo?

_________________
Markus Kinzler.
Skinzone Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 04.06.10 15:42 
Müsst ja ein String sein.
Wie bekomm ich die berechtigung das es ein Ordner kopiert?
mfg
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 04.06.10 15:51 
Moin!

user profile iconSkinzone hat folgendes geschrieben Zum zitierten Posting springen:
Wie bekomm ich die berechtigung das es ein Ordner kopiert?
Was hat das mit dem Titel des Threads zu tun? :gruebel:

Welche(n) Ordner willst du denn kopieren und welche Rechte hat der angemeldete Benutzer? :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Skinzone Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 04.06.10 16:04 
Naja nach dem ich des eine Prob. gelöst hab trat ein anderes auf, und wollte nicht noch ein neuen Thread auf machen.

-Der Benutzer ist Admin
-Der Ordner soll variabel sein und in einer Ini initialisiert werden.

Wenn ich eine Datei direkt auswähle "c:/desktop/bsp.txt" funktioniert es.
-Aber wenn ich im Zielpfad nur den Ordner auswähle: "c:/desktop" kommt: Cannot create file...
zugriff verweigert.
-Wenn ich im "von" pfad nur den Orner wähle dann kommt "cannot read file... zugriff verweigert..


mfg
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 04.06.10 16:12 
Die Frage ist welche Flags du angibst, denn davon hängt ja ab was die Funktion machst. In deinem Quelltext hast du eine Funktion, die als vierten Parameter Flags bekommt, aber beim Aufruf hast du die unterschlagen...


Zuletzt bearbeitet von jaenicke am Fr 04.06.10 16:31, insgesamt 1-mal bearbeitet
Sybok Factor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50
Erhaltene Danke: 5

Win XP, Win Vista
Delphi 2010 Professional
BeitragVerfasst: Fr 04.06.10 16:27 
Falls es dir nur auf Kopieren eines Verzeichnisses ankommt: Unter Delphi 2010 bietet TDirectory.Copy sehr komfortable Möglichkeiten. Allerdings kann ich dir nicht sagen, ob damit deine Rechteprobleme gelöst werden.

Viele Grüße
Sybok Factor

_________________
Jetzte michse verstehen dein Problem.
Skinzone Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 04.06.10 16:27 
Ah also das FO_COPY?!
Wenn ich das rein schreibe kommt immernoch zugriff verweigert.
So kopiert es glaub nur dateien.
Wie bekomm ich es hin dass es ganze Verzeichnisse kopiert?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

user profile iconSybok Factor hat folgendes geschrieben Zum zitierten Posting springen:
Falls es dir nur auf Kopieren eines Verzeichnisses ankommt: Unter Delphi 2010 bietet TDirectory.Copy sehr komfortable Möglichkeiten. Allerdings kann ich dir nicht sagen, ob damit deine Rechteprobleme gelöst werden.

Hast du zufälllig ein Beispiel mit Directory.Copy da??
mfg
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 04.06.10 16:45 
Wie meinst du das? Da gibts nichts weiter, einfach hinschreiben. :nixweiss:
ausblenden Delphi-Quelltext
1:
TDirectory.Copy('c:\test''c:\test1');					
Und natürlich IOUtils in die uses, aber das steht ja eh in der Hilfe.
Skinzone Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 04.06.10 18:32 
Danke habs hinbekommen.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 04.06.10 19:14 
Noch ein kleiner Tipp. Die Funktion DoFileWork hat einen schönen Rückgabewert, warum wird die Abfrage des Rückgabewertes einfach ignoriert? So nach dem Motto: "Wird schon nichts passieren?"