trouver dossier utilisateur

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

trouver dossier utilisateur

Message par blendman »

salut

Dans certaines de mes applications, j'aimerai faire des sauvegardes (pref, etc...) dans le dossier utilisateur, histoire de partager ça entre les différentes versions sans devoir toujours réinstaller nos préférences ou d'autres options ^^.

Par exemple :
C:\Users\NOM_UTILISATEUR\AppData\Local\

Vous sauriez comment on peut le nom de l'utilisateur et le dossier AppData\Local\ ?
Est-il toujours sur C:\ ?

Merci :)
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: trouver dossier utilisateur

Message par case »

%userprofile%\AppData\Local\
ImageImage
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: trouver dossier utilisateur

Message par GallyHC »

Bonjour,

Avec un truc comme cela, je penses que tu peux trouvais ton bonheur.

Code : Tout sélectionner

Procedure.s GetSystemFolder(lvalue.l)
; ROUTINE DE RECHERCHE DES PATHS DU SYSTEME.
  Protected sfolder.s
  Protected *itemid.ITEMIDLIST = #Null

  If SHGetSpecialFolderLocation_(0, lvalue, @*itemid) = #NOERROR
    sfolder = Space(#MAX_PATH)
    If SHGetPathFromIDList_ (*itemid, @sfolder)
      If Right(sfolder, 1) <> "\"
        sfolder + "\"
      EndIf
      ProcedureReturn sfolder
    EndIf
  EndIf

EndProcedure

For i=0 To 256
  Debug Str(i) + " - " + GetSystemFolder(i)
Next i
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: trouver dossier utilisateur

Message par blendman »

Sinon, j'ai testé ça, ça a l'air de marcher :

Code : Tout sélectionner

Debug  GetHomeDirectory() +"AppData\Local\"
Qu'en pensez-vous ? :D
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

Re: trouver dossier utilisateur

Message par Bernie »

Pourquoi le mettre AppData\Local\?

il suffit de le mettre dans
C:\Users\NOM_UTILISATEUR\Documents


si le mets dans AppData\Local\ le répertoire est caché par défaut
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: trouver dossier utilisateur

Message par Marc56 »

GetHomeDirectory() te donnera la racine du répertoire utilisateur quelque soit le disque ou le nom.
C'est ça qui doit te servir de base.
Pour connaître les autres variables, tapes SET dans une fenêtre dos.
:wink:
Oups je n'avais pas vu que tu as déjà trouvé la réponse :mrgreen:

Local c'est pour les données qui restent sur le disque local
Roaming c'est si tu veux que les données soient accessibles via un éventuel reseau
Programme data c'est pour les données du programme lui même indépendament de l'utilisateur
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: trouver dossier utilisateur

Message par cage »

Bonjour,

Une petite procédure que j'utilise si besoin.

Code : Tout sélectionner

Procedure getEnviron()
  Global AllUsersProfile$       = GetEnvironmentVariable("AllUsersProfile")
  Global AppData$               = GetEnvironmentVariable("AppData")
  Global CommonProgramFiles$    = GetEnvironmentVariable("CommonProgramFiles")
  Global CommonProgramFilesX86$ = GetEnvironmentVariable("CommonProgramFiles(x86)")
  Global CommonProgramW6432$    = GetEnvironmentVariable("CommonProgramW6432")
  Global ComputerName$          = GetEnvironmentVariable("ComputerName")
  Global HomeDrive$             = GetEnvironmentVariable("HomeDrive")
  Global HomePath$              = GetEnvironmentVariable("HomePath")
  Global LocalAppData$          = GetEnvironmentVariable("LocalAppData")
  Global ProgramData$           = GetEnvironmentVariable("ProgramData")
  Global ProgramFiles$          = GetEnvironmentVariable("ProgramFiles")
  Global ProgramFilesX86$       = GetEnvironmentVariable("ProgramFiles(x86)")
  Global ProgramW6432$          = GetEnvironmentVariable("ProgramW6432")
  Global PUBLIC$                = GetEnvironmentVariable("PUBLIC")
  Global SystemDrive$           = GetEnvironmentVariable("SystemDrive")
  Global SystemRoot$            = GetEnvironmentVariable("SystemRoot")
  Global TEMP$                  = GetEnvironmentVariable("TEMP")
  Global TMP$                   = GetEnvironmentVariable("TMP")
  Global Username$              = GetEnvironmentVariable("USERNAME")
  Global UserProfile$           = GetEnvironmentVariable("UserProfile")
  Global Windir$                = GetEnvironmentVariable("windir")

  Global System32$ = SystemRoot$ + "\System32\"
  
  Global etcHosts$   = System32$ + "drivers\etc\hosts"
  Global etcLmhosts$ = System32$ + "drivers\etc\lmhosts"

  If ProgramFilesX86$ = #Null$
    ProgramFilesX86$ = ProgramFiles$
  EndIf
EndProcedure ; getEnviron()
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: trouver dossier utilisateur

Message par Ar-S »

+1 cage
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: trouver dossier utilisateur

Message par blendman »

Merci Cage pour ta procédure ;)

Edit : en regardant, j'ai vu qu'on pouvait facilement les obtenir avec :

Code : Tout sélectionner

If ExamineEnvironmentVariables()
    While NextEnvironmentVariable()
      Debug EnvironmentVariableName() + " = " + EnvironmentVariableValue()
    Wend
  EndIf
Répondre