Entwickler-Ecke

Dateizugriff - MoveFile Funktioniert nicht


Jeremy - Mi 05.11.03 16:06
Titel: MoveFile Funktioniert nicht
Was Ist bitte los mit diese code :

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:
procedure TForm1.Timer1Timer(Sender: TObject);
var
 path1, path2: String;
 F: File;
 FToMove: Integer;
 SearchRec : TSearchRec;
 Con: TIniFile;
begin
 Con := TIniFile.Create('.\Sharbuster.con');
Dir1 := Con.ReadString('Sharebuster-conf''StartVerzeichnis''');
Dir2 := Con.ReadString('Sharebuster-conf''ZeilVerzeichnis''');
Con.Free;
 AssignFile(F, '.\Sharbuster.con');
  if (not fileexists('.\Sharbuster.con')) then
   begin
    Timer1.Enabled := false;
    ShowMessage('Kein Start/Ziel Verzeichnis ausgewählt! Bitte Setzen Sie ein Start und Zeil Verzeichnis!');
   end
   else
    begin
     Path1 := Dir1;
     Path2 := Dir2;
     FToMove := FindFirst(Path1, faAnyFile, SearchRec);
     while FToMove = 0 do
      begin
        if (copy(SearchRec.Name, 11) <> '.'then
         begin
           if (SearchRec.Attr <> 0and (faDirectory <> 0then
            begin
          MoveFile(PChar('N:\Programme\eMule\Incoming\'+ SearchRec.Name), Pchar('C:\Temp\'+SearchRec.Name));
          FToMove := Findnext(SearchRec);
           end;
         end;
      end;
   end;
  FindClose(SearchRec);
end;


Kann mir jemand da helfen?? Bitte


Delete - Mi 05.11.03 18:04

Stimmen die Pfade und Dateinamen? Was sagt GetLastError()?


Jeremy - Mi 05.11.03 20:07
Titel: MoveFile Funktioniert nicht
Die Pfade sind richtig. GetLastError hab ich nicht probiert mach ich morgen fruh.

Danke


Jeremy - So 16.11.03 22:12
Titel: It works now
Ok Jetzt geht's. Es scheint das die pfade waren nicht richteg, weil ich sie geändert hab in ein DirListBox. Aber noch D:= extractfilepath(progname.exe);
am anfang der procedure ging alles glat. der fertige prog. + source gibts bei http://www.schoenhaar.net.tc/Jeremy/Software/Sharebuster/setup.exe

Kommentare sind mehr als wilkommen


Delete - So 16.11.03 23:10


Delphi-Quelltext
1:
Con := TIniFile.Create('.\Sharbuster.con');                    

Das deine Anwendung diese Ini datei findet, ist reine Glückssache. :roll:


Jeremy - Mo 17.11.03 13:02
Titel: ist auch geähndert worden
ist auch jetzt geändert worden. Jetzt scheibt es ein conf datei in "C:\". C:\ dürfte jede windows pc haben ist ist leichter für das prog. zu finden.


Delete - Mo 17.11.03 13:42

Ins Root-Verzeichnis gehören nur Startdateien vom Betriebssystem und sonst NICHTS!


Tino - Mo 17.11.03 15:22

@Jeremy: Warum benutzt du nicht dein Programm Verzeichnis? Also das Verzeichnis in dem sich die Exe-Datei befindet? Mit Suche in: Delphi-Forum, Delphi-Library PARAMSTR(0) und der Funktion Suche in: Delphi-Forum, Delphi-Library EXTRACTFILEPATH kannst du dir das Verzeichnis geben lassen. Allerdings kann es sein, dass der User der dein Programm ausführt dort keine Schreibrechte besitzt.

Deshalb gibt es das Anwendungsdaten-Verzeichnis welches für jeden User vorhanden ist (z.B.: "C:\Documents and Settings\username\Local Settings\Application Data"). Mit Hilfe diesem FAQ [http://www.delphi-forum.de/viewtopic.php?t=9428] Beitrag und der Konstante CSIDL_LOCAL_APPDATA [http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp] kannst du dir dieses Verzeichnis ermitteln.

Gruß
Tino


Jeremy - Mo 17.11.03 19:31
Titel: Danke
Danke Tino das merk ich mir für die nächste version. Hab schon ne paar bugs aug selber entdeckt, und werd sie halt selbst aus arbeiten. Aber bisher jeder der es getestet hat, hat noch keine probleme gefunden. Aber die eine sicherheits lücke die ich selber entdeckt habe gefällt mir nicht und ich werds beheben. Aber dann wozu gibts dann Beta versionen.