IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Chemin dossier Users\ApplicationData


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 616
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 616
    Par défaut Chemin dossier Users\ApplicationData
    Bonjour à toutes et à tous,

    J'aimerai pouvoir éffacer un dossier créé par mon application dans le répertoire, C:\Documents and Settings\CINCAP\Application Data\Mon Dossier

    J'utilise la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function LocalAppDataPath : string;
    const
       SHGFP_TYPE_CURRENT = 0;
    var
       path: array [0..MAX_PATH] of char;
    begin
       SHGetFolderPath(0,CSIDL_LOCAL_APPDATA,0,SHGFP_TYPE_CURRENT,@path[0]) 
     
    ;
       Result := path;
    end;
    Seulement sur le pc de ma fille, User "CINCAP" n'existe pas et porte forcément un autre nom.

    Je fais des tests depuis ce matin et quelque chose m'échappe.

    Si quelqu'un avait une idée, merci d'avance.

    @+,

    Cincap

  2. #2
    Membre éclairé Avatar de shell13010
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2008
    Messages : 281
    Par défaut
    salut cincap

    le raccourci pour le nom est %USERPROFILE%

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function MonUser: string;
    begin
        result:= GetEnvironmentVariable('USERPROFILE');
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
       edit1.text:=MonUser;
    end;
    renvoie le nom de L'user

    A+

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 616
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 616
    Par défaut
    @ shell13010, merci pour ta fonction, mais seul l'user est renvoyé sans le reste de dossier "\Application Data\Mon Dossier".

    Il est vrai que je pourrai faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TFTest.BTestClick(Sender: TObject);
    begin
    edit1.text:=MonUser +'\Application Data\Mon Dossier';
    end;
    A partir de ce code comment est ce que je pourrai tester si "Mon dossier" existe et si oui l'éffacer.

    @+,

    Cincap

  4. #4
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    Salut,

    Tiens regarde ici :
    http://www.swissdelphicenter.ch/torr...de.php?id=2277

    Tu devrais y trouver ton bonheur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    procedure TForm1.Button1(Sender: TObject);
    begin
      ShowMessage(GetEnvVarValue('APPDATA'));
    end;

    @+

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 616
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 616
    Par défaut
    @ Droïde Système7, merci pour l'info, très intéressante au niveau code.

    @ Nabil74, merci Nabil74, mais le click sur le bouton doit me déléter en silence le dossier "Mon dossier".

    Donc je dois me positionner dans le répertoire de l'user et les fonctions proposées de Droïde Système7 et shell13010 sont pertinantes puis je dois éffacer uniquement le dossier "Mon dossier".

    Et c'est la que je bloque.

    @+,

    cincap

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    @ cincap,
    pour connaître le chemin de "application data ", utilise la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function applicationData: string;
    begin
        result:= GetEnvironmentVariable('AppData');
    end;
    ajoute un "edit".
    ensuite, on va appeler cette fonction dans la propriété "On create" de la fiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    edit1.text:=applicationData;
    la fonction "application data " va nous donner le chemin auquel on lui ajoute le nom de ton dossier "Mon dossier".

    et pour l'effacer, on crée une fonction de suppression du dossier"mon dossier".
    le code globale(testé!):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function applicationData: string;
    begin
        result:= GetEnvironmentVariable('AppData');
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     edit1.text:=applicationData;
    end;
    fonction d'effacement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Function DelTree(DirName : string): Boolean;
    var
      SHFileOpStruct : TSHFileOpStruct;
      DirBuf : array [0..255] of char;
    begin
      try
       Fillchar(SHFileOpStruct,Sizeof(SHFileOpStruct),0) ;
       FillChar(DirBuf, Sizeof(DirBuf), 0 ) ;
       StrPCopy(DirBuf, DirName) ;
       with SHFileOpStruct do begin
        Wnd := 0;
        pFrom := @DirBuf;
        wFunc := FO_DELETE;
        fFlags := FOF_ALLOWUNDO;
        fFlags := fFlags or FOF_NOCONFIRMATION;
        fFlags := fFlags or FOF_SILENT;
       end;
        Result := (SHFileOperation(SHFileOpStruct) = 0) ;
       except
        Result := False;
      end;
    end;
    maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if DelTree(edit1.Text+'\Mon dossier') then //on ajoute le nom de ton dossier à "edit1"
    ShowMessage('Dossier effacer!')
    else
    ShowMessage('Erreur!') ;
    end;

    a+

    NABIL74

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    salut,
    @cincap salut l'ami .
    tu peux mettre sur ta fiche un "ShellListView" qui servira à visualiser la liste des répertoires de ton "ApplicationData".

    utilise la fonction que shell t'as proposée et puis ajoute ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ShellListView1.Root:= MonUser;
    end;
    tu verras les dossiers.pour effacer un dossier, clique droit sur le dossier en question et clique sur "supprimer".

    a+
    NABIL74

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WS 2003] Creation des dossiers user avant le premier Login ?
    Par kxxx78 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 15/12/2009, 16h43
  2. Chemin dossier "Ma musique", etc.
    Par lecteur1001 dans le forum Windows XP
    Réponses: 9
    Dernier message: 11/11/2009, 20h29
  3. [OS] Impossible d'ouvrir le dossier User Template ?
    Par pat734 dans le forum Développement OS X
    Réponses: 7
    Dernier message: 17/05/2008, 13h57
  4. Active Directory : Ajouter un user dans dossier "Users"
    Par marcusien dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/09/2007, 18h06
  5. VBA excel Par bouton parcourir prendre chemin dossier
    Par raymoundo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2007, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo