[GELÖST] ClientTempFileName

17. Dezember 2012 11:52

Hallo zusammen,

die Funktion "ClientTempFileName" (Coudeunit 419) erstellt im Clientverzeichnis eine Temp-Datei und als Rückgabewert liefert sie einen Dateinamen inkl. Pfad zurück.

Weiß einer wieso der Lokal erstellte Dateiname und der aus der Funktion zurückgegeben Dateiname unterschiedlich heißen?

Wenn ich den u.s. Code ausführe, erhalte ich beim Notepad immer die Frage, dass die Datei nicht gefunden werden kann und ob ich eine neuen erstellen soll.
Ich denke, dass das mit den Unterschiedlichen Dateinamen zusammen hängt ??

Code:
CREATE(WshShell,FALSE,TRUE);
command := 'c:\windows\notepad.exe ' + FileMgt.ClientTempFileName('txt');
WshShell.Run(Command,1,TRUE);



Danke!
Zuletzt geändert von KAMKAMS am 21. Dezember 2012 17:41, insgesamt 1-mal geändert.

Re: ClientTempFileName

17. Dezember 2012 12:33

KAMKAMS hat geschrieben:Weiß einer wieso der Lokal erstellte Dateiname und der aus der Funktion zurückgegeben Dateiname unterschiedlich heißen?


ClientTempFileName (vereinfacht)
Code:
TempFile.CREATETEMPFILE;
ClientFileName := TempFile.NAME + '.' + FileExtension; // Dateiname, aber ohne GUID. Wird gemacht, um über Variable TempFile an das Temp-Verzeichnis zu kommen.
[...]
ClientFileName := ClientTempPath + '\' + FORMAT(CREATEGUID) + '.' + FileExtension; // Dateiname mit GUID


ClientTempFileName wird lediglich in der Funktion UploadFileSilent aufgerufen, um eine Datei vom Client zum Server zu kopieren.
ClientTempFileName ist nur ein Zwischenschritt, um danach die Clientdatei aus dem Ursprungsverzeichnis in den Client-Temp-Ordner zu kopieren. Die Datei in diesem Temp ordner heißt dann aber nicht mehr DeineDatei.txt, sondern z.B. {043345432}.txt (daher mit GUID). Diese temporäre Datei wird letzlich zum Server hochgeladen.

Was möchtest du eigentlich mit dem Aufruf bezwecken?
Der WshShell erwartet eine "echte", existente Datei. ClientTempFileName erstellt diese aber nicht, sondern liefert dir nur den Namen, unter welchem du die Datei erstellen könntest.

Re: ClientTempFileName

17. Dezember 2012 13:02

Hallo Natalie,

ich möchte nur eine Lokale Textdatei mit dem Editor öfnnen, bearbeiten und danach speichern.
Zuletzt geändert von KAMKAMS am 17. Dezember 2012 13:16, insgesamt 1-mal geändert.

Re: ClientTempFileName

17. Dezember 2012 13:15

Dann verwende nur diesen Teil anstatt die ganze Funktion:

Code:
  TempFile.CREATETEMPFILE;
  ClientFileName := TempFile.NAME + '.' + FileExtension;
  TempFile.CLOSE;
  TempFile.CREATE(ClientFileName);
  TempFile.CLOSE;