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 : 6527
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++ / C++.NET} EDITER UN FICHIER BIT PAR BIT
Bonjout, J'ai récemment eu besoin d'éditer un fichier bit à bit mais ne trouvant pas de moyen de ...

{PHP} CHARGER DES DONNÉES DEPUIS UN FICHIER TXT DANS UNE BASE DE DONNÉE
le titre dit tout dejàs ce script utilise une base de données Mysql les requêtes pour la création ...

{Visual Basic, VB6, VB.NET, VB 2005} INSERER TOUT TYPE DE FICHIERS DANS ORACLE EN VB.NET
Ce petit code permet d'ajouter tout type de fichiers dans oracle et par la suite de les récupérer, l...

{C / C++ / C++.NET} FICHIER ALBUM MUSICAL
.............................................................................creer un fichier conten...

{PHP} GÉNÉRER UN MOT DE PASS ALÉATOIRE
Voilà c'est le 1er script que je pose sur ce site. Il est très simple je sais, mais faut bien commen...

{PHP} CLASSE SIMPLE DE GESTION DE FICHIERS
Bonjour, Dans le cadre d'un projet lié à mon lycée, j'ai dû développer un certain nombre de class...

{Visual Basic, VB6, VB.NET, VB 2005} CAPTURE ET ENREGISTREMENT D'UNE IMAGE DEPUIS UNE WEBCAM
Ce code permet de capturer une photo à partir d'un flux WebCam avec la technologie ActiveX. Inspiré ...

{Visual Basic, VB6, VB.NET, VB 2005} OUVRIR TOUS LES FICHIERS EXCEL D'UN DOSSIER ET DE SES SOUS-DOSSIERS
Petite macro permettant de choisir un dossier puis de parcourir le dossiers et ses sous-dossiers afi...