AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Temp Datei erstellen und wieder löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Temp Datei erstellen und wieder löschen

Ein Thema von Salomon · begonnen am 10. Apr 2008 · letzter Beitrag vom 30. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.143 Beiträge
 
Delphi 12 Athens
 
#11

Re: Temp Datei erstellen und wieder löschen

  Alt 24. Apr 2008, 14:09
also MSDN-Library durchsuchenFILE_ATTRIBUTE_TEMPORARY + MSDN-Library durchsuchenFILE_FLAG_DELETE_ON_CLOSE ist schon OK, aber MSDN-Library durchsuchenGetTempFileName würde ich noch mit MSDN-Library durchsuchenGetTempPath kombinieren.


was kleines aus meiner Funktionssamlung ... wir etwa so verwendet wie MSDN-Library durchsuchenCreateFile:
Delphi-Quellcode:
// © 1997-2008 by FNS Enterprize's (FNSE.de)
// © 2003-2008 by himitsu @ Delphi-PRAXiS.de

Function CreateTempFileA(lpPrefixString: LPSTR; bShareRead: Boolean = False; TempFileName: PFileNameA = nil): HANDLE;
  {not Inline}

  Const RM: Array[Boolean] of DWORD = (FILE_SHARE_READ, 0);

  Var i: Integer;
    S, S2: TFileNameA;
    E: LongInt;

  Begin
    Result := INVALID_HANDLE_VALUE;
    If GetTempPathA(MAX_PATH, @S) > MAX_PATH Then Exit;
    i := 9999;
    Repeat
      If GetTempFileNameA(@S, lpPrefixString, 0, @S2) = 0 Then Exit;
      Result := CreateFileA(@S2, GENERIC_READ or GENERIC_WRITE, RM[bShareRead],
        nil, CREATE_NEW, FILE_ATTRIBUTE_TEMPORARY or FILE_FLAG_DELETE_ON_CLOSE, 0);
      If Result = INVALID_HANDLE_VALUE Then Begin
        E := GetLastError;
        SetLastError(E);
      End Else E := 0;
      Dec(i);
    Until (i = 0) or (E <> ERROR_ALREADY_EXISTS);
    If TempFileName <> nil Then TempFileName^ := S2;
  End;
Und dann noch das ...
Delphi-Quellcode:
Type
  LPSTR = PAnsiChar;
  HANDLE = THandle;
  TFileName = packed Record[1..MAX_PATH] of AnsiChar;
  PFileName = ^TFileName;
wer will kann TFileName und TempFileName auch ausbauen ... ist ja nur nötig, falls man wissen will, wo/welche Datei erstellt wurde, oder man baut es sich auf PAnsiChar/PChar um (oder gar auf String/AnsiString).


Zitat:
Hey, da ich ein Template kopiere brauch ich eigentlich nur einen Temporären Dateinamen.... Gibts da ein "GetTempFilename" das mir nur einen Namen zurückgibt und keine Datei gleichzeitig erzeugt?
jupp ... nur das vor CreateFile
(in S2 steht der Name)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#12

Re: Temp Datei erstellen und wieder löschen

  Alt 30. Jun 2008, 15:09
@shmia:

Hallo, kannst du mir sagen in welcher Unit die Funktion zu finden ist???

Danke!!


Delphi-Quellcode:
Folgende Funktionen wurden aus der JCL kopiert.
Also ich benütze die JCL in allen meinen Programm, denn sie enthält fast alles, was Borland in der RTL/VCL vergessen hat.
 function PathGetTempPath: string;
var
  BufSize: Cardinal;
begin
  BufSize := Windows.GetTempPath(0, nil);
  SetLength(Result, BufSize);
  Windows.GetTempPath(BufSize, PChar(Result));
  //StrResetLength(Result);
  Result := PChar(Result);
end;

function FileGetTempName(const Prefix: string): string;
var
  TempPath, TempFile: string;
  R: Cardinal;
begin
  Result := '';
  TempPath := PathGetTempPath;
  if TempPath <> 'then
  begin
    SetLength(TempFile, MAX_PATH);
    R := GetTempFileName(PChar(TempPath), PChar(Prefix), 0, PChar(TempFile));
    if R <> 0 then
    begin
      StrResetLength(TempFile);
      Result := TempFile;
    end;
  end;
end;
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: Temp Datei erstellen und wieder löschen

  Alt 30. Jun 2008, 16:09
Zitat von DelphiManiac:
@shmia: Hallo, kannst du mir sagen in welcher Unit die Funktion zu finden ist???
In Unit JclFileUtils; diese liegt unter JCL\Source\Common
http://sourceforge.net/projects/jcl/
Andreas
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#14

Re: Temp Datei erstellen und wieder löschen

  Alt 30. Jun 2008, 19:42
Danke dir!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz