Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 02.03.06 11:18 
Möchte Dateien von einem Rechner zu einem anderen Rechner im Netzwerk verschieben.
Muss updates von Programmen machen, dazu muss ich bei jedem Rechner im selben Verzeichnis einen neuen Order erstellen und in diesen dann ein paar Dateien hineinkopieren. Wie kann ich das lösen. Mit der Komponente IdIcmpClient1 prüfe ich schon über den PING-Befehl ob der Rechner angeschaltet ist.
Wie kann ich aber die Dateien verschieben?

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 02.03.06 11:28 
Ist denn das Verzeichnis auf dem fremden Rechner überhaupt für Schreibzugriffe freigegeben?
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 02.03.06 11:32 
Ja, bin Admin

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 02.03.06 11:38 
Moin!

Dann kannst du die normalen Dateifunktionen nutzen, aber mit UNC, geht so:

C:\test.txt auf dem PC "meinPC" ist: \\meinPC\c$\test.txt im Netzwerk. :wink:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Do 02.03.06 11:45 
sofern die Admin-Freigaben da sind sollte das funktionieren.
aber eleganter wäre:

stelle deine Updates auf einen Webserver oder ftp-server (der ja in der Regel immer online ist)und lasse
doch die Clients sich selbst die neuesten Daten holen.
das geht wesentlich einfacher als das was du vorhast.
Das einzige was du dann brauchst ist einen ftp/http-client und a bissle Versionshistory, nicht dass
die clients sich immer das letzte Update holen, was sie aber schon haben.

Gebe der Update-funktion dann statt einer festen IP-Adresse einen DNS-Namen, so dass du in der
wahl der IP frei bist und diese auch noch ohne Code-Änderung verändern kannst.


grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 02.03.06 12:16 
Super funktioniert perfekt. Danke!!!
Jetzt muss ich aber prüfen ob die Datei bereits geöffnet ist, habe folgende Funktionen mal versucht, aber diese funktionieren nicht:

ausblenden 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:
function IsFileOpen(const fName: TFileName): Boolean;
var 
  HFileRes: HFILE; 
begin 
  Result := False; 
  HFileRes := CreateFile(PChar(fName),
                         GENERIC_READ or GENERIC_WRITE,
                         0,
                         nil,
                         OPEN_EXISTING, 
                         FILE_ATTRIBUTE_NORMAL, 
                         0); 
  Result := (HFileRes = INVALID_HANDLE_VALUE); 
end;


function IsFileInUse(FileName: string): boolean;
var
  TestFile: HFILE;
begin
  TestFile:=CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

  result:=TestFile=INVALID_HANDLE_VALUE;
  if not result then CloseHandle(TestFile);
end;


Möchte einfach eine Funktion die mir prüft ob eine Datei bereits geöffnet ist oder nicht, dazu true oder false zurückgeben.

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Fr 03.03.06 12:35 
Habe noch ein Problem, ich kann die Dateien zwar in Verzeichnisse schieben die freigegeben sind. Gibt es auch eine Möglichkeit auf Ordner zugreifen die nicht freigegeben sind. (Ich bin ja Admin)
Ich glaube mit Batch-Dateien gibt es da eine Möglichkeit

Wenn ich //Rechnername eingebe sehe ich aber nur die Dateien die freigegeben sind.

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 03.03.06 14:35 
Wenn Du Admin bist, kannst Du Dir über die Computer-Verwaltung weitere Ordner ohne Probleme auf dem Fremdrechner freigeben. Weiterhin gibt es für jede Festplatte normalerweise auch immer eine Administrative Freigabe ;-)

Freigaben auf Fremdrechnern kann man auch Programmseitig anlegen, falls Du das meinst ... Siehe WNet-API ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.