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 : 7444
Catégorie(s) : API, Fichier / Disque, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- Delphi 5
- Delphi 5
- C# 1.x, C# 2.x, C# 3.x, VB 2005, VB 2008, VB.NET 1.x



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
Langage : VB.NET 1.x , VB 2005 , C# 1.x , C# 2.x , C# 3.x , VB 2008
Date ajout : 19/08/2008
Posté par ShareVB [Liste]
System.IO.Path.GetTempFileName()

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} JPG + ZIP = JPG ET ZIP
Arf : ma première source (publique) en .Net ! Sur une idée de jx53 sur le forum de VBFrance, voil...

{Visual Basic, VB6, VB.NET, VB 2005} LECTURE DE FICHIER *.OFX
Lit le fichier et renvoit toutes les infos dans une structure. Tester sur les fichiers OFX de Dex...

{Delphi} ENREGISTREMENT DES DONNÉES DANS L'EXE
Alors rien de bien nouveau, comment écrire dans un Exe ? La méthode a déjà été montrée / démontrée ...

{Visual Basic, VB6, VB.NET, VB 2005} LA MEILLEURE SOLUTION POUR EMPÊCHER L'ÉCRITURE ET L'INFECTION DES VIRUS SUR LES CLÉS USB
L'idée de ce Script vient après avoir lu cet Article:"Create Fake Dummy File on USB Flash Drive to E...

{Visual Basic, VB6, VB.NET, VB 2005} 2COMBOBOX SAVE 1FICHIER .DAT
Enregistrement et lecture de 2 ComboBox d'un fichier .dat... sur que c’est pas la meilleure source m...

{C / C++ / C++.NET} C++ CONSOLE APPLI : GESTION CABINET MÉDICAL
Voila mon premier essai en Visual C++: Un mini projet POO en C++ (développé sous Ms Visual Studio 20...

{Javascript / DHTML} TELECHARGEMENT SANS RECHARGER LA PAGE
voila comment télécharger un fichier sur votre serveur sans devoir recharger la page en cours. en f...

{Delphi} GÉNÉRER UN SON À LA VOLÉE
J'ai adapté différents bouts de codes trouvés ça et là sur la toile afin de pondre un petit programm...