Les Snippets

Connexion

Générer un nom de fichier temporaire unique

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 09/06/2008 21:45:12 et initié par PCPT [Liste]
Date de mise à jour : 14/06/2008 00:51:44
Vue : 1071
Catégorie(s) : API, Fichier / Disque, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- Delphi 5
- Delphi 5



Langage : VB6 , VBA
Date ajout : 09/06/2008
Posté par PCPT [Liste]
DateMAJ : 14/06/2008
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As StringAs Long
Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As StringByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As LongByVal lpBuffer As String) As Long
Function GetUniqueTempFileName(Optional ByVal  bCreate As Boolean  = True) As String
    Dim sBuffer As String
    sBuffer = String$(260, vbNullChar)
    
'    aucune  raison qu'on obtienne pas le chemin réel par API mais bon au pire on  peut tenter  par ENVIRON
    If GetTempPath(Len(sBuffer), sBuffer) Then
'       enlève  les  NULL
        GetUniqueTempFileName = LeftB$(sBuffer, InStrB(1, sBuffer,  vbNullChar))
    Else
        GetUniqueTempFileName = Environ$("TEMP")
    End If
    
'   ajoute le slash,  la  fonction sera alors prête à retourner  le  "X:\RéPERTOIRE_TEMP\"
    If Not (RightB$(GetUniqueTempFileName, 2) = "\"Then GetUniqueTempFileName = GetUniqueTempFileName & "\"
    
'   on va générer un  nom  temporaire de fichier temporaire
    sBuffer = String$(260, vbNullChar)
    Call GetTempFileName(GetUniqueTempFileName, App.EXEName, 0&, sBuffer)
    sBuffer = LeftB$(sBuffer, InStrB(1, sBuffer,  vbNullChar))
    
'    retour
    GetUniqueTempFileName = sBuffer
'   l'API a créé le fichier, on supprime si  nécessaire
    If Not bCreate Then Call DeleteFile(sBuffer)
End Function

Langage : Delphi 5
Date ajout : 29/06/2008
Posté par f0xi [Liste]
function GenerateTempFileName(const Ext: string = 'tmp') : String;
var Tz: integer;
    N : cardinal;
    C : char;
    T : string;
begin
  SetLength(T, MAX_PATH);
  Tz := 0;
  Tz := GetTempPath(MAX_PATH,PChar(T));
  SetLength(T, Tz);
  T := IncludeTrailingBackslash(T);
  repeat
    N := GetTickCount xor cardinal(random(256) * random(256) * random(256) * random(256));
    C := chr(byte(65+random(26)));
    result := T+C+format('%.8x',[N])+'.'+Ext;
  until not FileExists(result);
end;
Remarque :
genere des noms de fichier dans l'interval :
C:\windows\temp\A00000000.tmp
a
C:\windows\temp\ZFFFFFFFF.tmp
Langage : Delphi 5
Date ajout : 16/07/2008
Posté par cirec [Liste]
function GetUniqueTempFileName(const Prefix: String):String;
var sTmpPath: String;
begin
  SetLength(sTmpPath, Max_Path);
  GetTempPath(Max_Path, PChar(sTmpPath));
  SetLength(Result, Max_Path);
  GetTempFileName(PChar(sTmpPath), PChar(Prefix), 0, PChar(Result));
end;
// Utilisation
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := GetUniqueTempFileName('Tmp');
end;

Remarque :
le paramètre "Prefix" de la fonction "GetTempFileName" ne prend en compte que les trois premiers caractères

Snippets en rapport avec : Fichier, Unique, Générer, Temp, Temporaire



Codes sources en rapport avec : Fichier, Unique, Générer, Temp, Temporaire

{Visual Basic, VB6, VB.NET, VB 2005} NOM DE FICHIER UNIQUE (INCREMENTE)
Pas de Zip, je sais, faut copier coller... Cette fonction m'a été demandée par un Ami. J'en fait...

{Delphi} CRÉATION DE FICHIERS TEMPORAIRES DANS LE DOSSIER TEMPORAIRE COURANT.(API)
Ayant eu besoin de travailler avec des fichiers temporaires, je suis tombé par hasard sur 2 fonction...

{Visual Basic, VB6, VB.NET, VB 2005} LECTURE ET MODIFICATION DES PROPRIÉTÉS DES FICHIERS OFFICE ET NTFS5
Lorsque vous cliquez sur Propriété d'un fichier, vous avez surement remarqué les onglets Résumé (pou...

{Delphi} MODIFIER LES DATES DE CRÉATION, DE MODIFICATION ET DE DERNIER ACCÈS D'UN FICHIER
La Source de grandvizir actuellement présente sur le site (http://www.delphifr.com/codes/CORRUPTEUR-...

{PHP} UTILISATION DU COMPOSANT MULTIPOWUPLOAD
Exemple d'utilisation du composant MultiPowUpload.... Le dossier UploadedFiles doit avoir les dro...

{C / C++ / C++.NET} BASE DE DONNÉES FICHIER
LOGICIEL COMPILE AVEC BC++ 5 STANDARD Ce logiciel genere une base de données des fichiers...

{SQL} SQL LECTURE IMPORT DE FICHIER TEXTE
Cette procédure permet le lire fichier texte comme un simple SELECT * sur une table. Pour faire s...

{C / C++ / C++.NET} LES ENSEMBLE C++
ptite source realisé lors d'un tp en class ,permet une mini gestion des ensemble en C++, operatio...

{PHP} UPLOAD MULTIPLE OU SIMPLE DES FICHIERS
il n'a jamais été aussi facile de transferer des fichiers sur votre serveur. /* EXPLICATION ET REG...

{Delphi} UN CHRONOS SIMPLE AVEC UN COMPOSENT LABEL ANIMÉ
RESalut a tts, ceci est un crono trés simple. avec un composant label animé Installer le composant...