Trouver le dossier temporaire

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Trouver le dossier temporaire

Message par Le Soldat Inconnu »

Code : Tout sélectionner

Procedure.s GetTempDirectory()
  Protected WinTemp.s
  WinTemp  = Space(255) 
  If GetTempPath_(255, WinTemp) 
  Else 
    WinTemp = "c:\Temp\" 
  EndIf
  If Right(WinTemp, 1) <> "\" : WinTemp = WinTemp + "\" : EndIf
  ProcedureReturn WinTemp
EndProcedure



;- Test

Debug GetTempDirectory()
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bonjour soldat

Je viens de trouver ce code pour connaitre l'adresse du dossier temporaire, mais pourquoi retourne t'il l'adresse sous format DOS ?? 8O

J'en ai essayé un autre qui viens de toi aussi, mais quand à lui il ne retourne pas apparement l'adresse du fichier temp. :(

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu, d'après le code de je sais plus ...
; Version de PB : 3.90
;
; Explication du programme :
; Récupérer les dossier spéciaux de windows


Procedure.s GetSpecialFolderLocation(lngCSIDL.l)
  Protected lngRet.l, strLocation.s, pidl.l
  strLocation = Space(260)
  lngRet = SHGetSpecialFolderLocation_(0, lngCSIDL, @pidl)
  If lngRet = 0
    SHGetPathFromIDList_(pidl, @strLocation)
    If lngRet = 0
      strLocation = RTrim(strLocation)
      If Right(strLocation, 1) <> "\"
        strLocation = strLocation + "\"
      EndIf
      ProcedureReturn strLocation
    EndIf
    CoTaskMemFree_(pidl)
  EndIf
EndProcedure



;- Programme principal
For n = 0 To 80
  If GetSpecialFolderLocation(n) <> ""
    Debug RSet(Str(n), 2, "0") + "     " + GetSpecialFolderLocation(n)
  EndIf
Next; Auteur : Le Soldat Inconnu, d'après le code de je sais plus ...
; Version de PB : 3.90
;
; Explication du programme :
; Récupérer les dossier spéciaux de windows


Procedure.s GetSpecialFolderLocation(lngCSIDL.l)
  Protected lngRet.l, strLocation.s, pidl.l
  strLocation = Space(260)
  lngRet = SHGetSpecialFolderLocation_(0, lngCSIDL, @pidl)
  If lngRet = 0
    SHGetPathFromIDList_(pidl, @strLocation)
    If lngRet = 0
      strLocation = RTrim(strLocation)
      If Right(strLocation, 1) <> "\"
        strLocation = strLocation + "\"
      EndIf
      ProcedureReturn strLocation
    EndIf
    CoTaskMemFree_(pidl)
  EndIf
EndProcedure



;- Programme principal
For n = 0 To 80
  If GetSpecialFolderLocation(n) <> ""
    Debug RSet(Str(n), 2, "0") + "     " + GetSpecialFolderLocation(n)
  EndIf
Next
Quelqu'un en aurait il un qui retourne le chemin complet du repertoire temporaire.

Merci
Bonne journée :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Code : Tout sélectionner

Procedure.s GetTempDirectory() 
  Protected WinTemp.s 
  WinTemp  = Space(255) 
  If GetTempPath_(255, WinTemp) 
  Else 
    WinTemp = "c:\Temp\" 
  EndIf 
  If Right(WinTemp, 1) <> "\" : WinTemp = WinTemp + "\" : EndIf 
  ProcedureReturn WinTemp 
EndProcedure 

Chemin.s= GetTempDirectory()

LongPathName.s=Space(#MAX_PATH)
Debug Chemin

; Transformation Nom court en Nom long
If OpenLibrary(0,"Kernel32")  
    CallFunction(0,"GetLongPathNameA",Chemin,@LongPathName,#MAX_PATH)
    CloseLibrary(0)
EndIf 

Debug LongPathName
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

PB inclus la fonction GetTemporaryDirectory() :wink:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci beaucoup à vous deux.

Que ferais-je sans vous. 8)

Excelente journée
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre