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 : 11088
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...

{C# / C#.NET} SÉRIALISATION (BINAIRE) OBJECT, IMAGE, CLASS ...
C'est une petite classe qui permet de sérialiser un Object, Avec quelques exemples d'utilisation. ...

{JAVA / J2EE} LIRE ET ÉCRIRE UN FICHIER DÉLIMITÉ
Cette source permet de créer des fichiers délimités en définissant un format. Une fois le format ...

{Delphi} CLEANER NETTOYEUR DE RÉPERTOIRE
Cleaner est un utilitaire pour nettoyer un répertoire de fichier indésirable - Supprimer par sele...

{JAVA / J2EE} OBSERVATION DU SYSTÈME DE FICHIER SANS POLLING AVEC JAVA 7
Avec Java 6, quand on voulait être informé des changements sur un système de fichiers (détecter qu'u...

{Visual Basic, VB6, VB.NET, VB 2005} MAGIC FILE NAME : RENOMMEZ VOS FICHIERS AUTOMAGIQUEMENT !
Magic File Name est un petit outil pour renommer tous vos fichiers selon les critères choisis. Comme...

{JAVA / J2EE} RECHERCHER DE FICHIERS AVEC UNE REGEX
Rechercher tout les fichiers avec un regex qui existes dans un dossier et les afficher sur une page ...

{Visual Basic, VB6, VB.NET, VB 2005} OUTLOOK ATTACHEMENT SAVER
Programme permettant de sauvegarder toutes les pièces jointes d'un répertoire (et/ou de tous ses sou...

{PHP} CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT"
Dans mon site j'avais besoin de variables "globales", qui ne soient pas seulement limitées à ma prop...