none
repertoire en pourcentage

    Question

  • Bonjour,

    voici un soucis que je rencontre, je fais des enregistrements en xml dans un répertoire ( à savoir sur le bureau ) mais le problème c que le chemin d'accès contient le nom d'utilisateur personnel du propriétaire du pc en question. Ce liens risque d'être non fonctionnel si une autre personne sur PC fait l'enregistrement. n' y a t-il pas un moyens de pourvoir indiqué l'accès au bureau sans marquer le nom utilisateur compris dans le répertoire ?

    merci pour votre aide


    Cardinal dev


    mardi 28 juin 2016 11:05

Réponses

  • Bonjour, En effet il faut ajouter un antislash devant le nom du fichier sinon il concatène le Desktop avec le nom de votre fichier :

    path + "\\" + Properties.Settings.Default.logversion + ".xml"

    si ça ne marche pas utilisez le SpecialFolder DesktopDirectory au lieu de Desktop :

    var path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 

    Cordialement

    mercredi 29 juin 2016 08:24
  • if (File.Exists(path + "\\" + "logfile" + Properties.Settings.Default.logversion + ".xml")) { int nextLogVersionNum = Convert.ToInt32(Properties.Settings.Default.logversion) + 1; Properties.Settings.Default.logversion = nextLogVersionNum.ToString(); Properties.Settings.Default.Save(); ds.WriteXml(path + "\\" + "logfile" + nextLogVersionNum + ".xml"); } else {

    ds.WriteXml(path + "\\" + "logfile" + Properties.Settings.Default.logversion + ".xml"); }

    Vous écrivez deux fois dans une fichier xml : avant le if et dans le if, enlevez celui avant le if.

    Cordialement,

    mercredi 29 juin 2016 09:21
  • Bonjour,

    .net fournit une fonctionnalité pour récupérer les répertoires spéciaux

    System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);

    Voici ce que cela donne:

    Dans votre cas vous pouvez récupérer CommonDesktopDirectory
    Cordialement
    Gérard

    mercredi 29 juin 2016 08:50

Toutes les réponses

  • Bonjour philippe gerard,

    La méthode GetFolderPath répondra à votre besoin : par exemple pour le chemin vers le bureau

    var path = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

    Cordialement

    mardi 28 juin 2016 11:32
  • merci pour votre aide. Mais je sais pas comment inséré cela dans ce code la:

    ds.WriteXml("D:\\connexion" + Properties.Settings.Default.logversion + ".xml");

    parceque ici ya deja le repertoire qui doit disparaitre biensur mais par rapport au nom du fichier comment je l'insère avec ce code la:

    var path = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);


    Cardinal dev

    mardi 28 juin 2016 12:14
  • Dans mon exemple ci-dessus path est la variable (string) qui indique le chemin vers le bureau : C:\Users\xxx\Desktop\). C'est une chaîne, donc :

    path + Properties.Settings.Default.logversion + ".xml"

    Cordialement,

    mardi 28 juin 2016 12:22
  • j'ai fait la modification mais sa enregistre pas dans le bureau, mais dans le c:\user\nom d'utilisateur( par exemple : gerard)\

    alors que c'est dans ce répertoire qu'on a le bureau.


    Cardinal dev

    mardi 28 juin 2016 23:06
  • Bonjour, En effet il faut ajouter un antislash devant le nom du fichier sinon il concatène le Desktop avec le nom de votre fichier :

    path + "\\" + Properties.Settings.Default.logversion + ".xml"

    si ça ne marche pas utilisez le SpecialFolder DesktopDirectory au lieu de Desktop :

    var path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 

    Cordialement

    mercredi 29 juin 2016 08:24
  • Bonjour,

    .net fournit une fonctionnalité pour récupérer les répertoires spéciaux

    System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);

    Voici ce que cela donne:

    Dans votre cas vous pouvez récupérer CommonDesktopDirectory
    Cordialement
    Gérard

    mercredi 29 juin 2016 08:50
  • merci la deuxieme solution avec "\\" marche. Mais j'ai nouveau le problème du double enregistrement.

    string path = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
    
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                dt.TableName = "Information";
                dt.Columns.Add("nom");
                dt.Columns.Add("mdp");
                dt.Columns.Add("heure");
                dt.Columns.Add("libelle");
                ds.Tables.Add(dt);
    
    
    
                DataRow row = ds.Tables["Information"].NewRow();
                row["nom"] = textBox1.Text;
                row["mdp"] = textBox2.Text;
                row["heure"] = label6.Text;
                row["libelle"] = "Tentative de connection erroné de cette utilisateur";
                ds.Tables["Information"].Rows.Add(row);
    
                ds.WriteXml(path + "\\" + "logfile" + Properties.Settings.Default.logversion + ".xml");
    
                if (File.Exists(path + "\\" + "logfile" + Properties.Settings.Default.logversion + ".xml"))
                {
                    int nextLogVersionNum = Convert.ToInt32(Properties.Settings.Default.logversion) + 1;
    
                    Properties.Settings.Default.logversion = nextLogVersionNum.ToString();
    
                    Properties.Settings.Default.Save();
    
                    
                    ds.WriteXml(path + "\\" + "logfile" + nextLogVersionNum + ".xml");

    je sais plus pourquoi ?


    Cardinal dev

    mercredi 29 juin 2016 09:19
  • merci cela m'aidera beaucoup

    Cardinal dev

    mercredi 29 juin 2016 09:20
  • if (File.Exists(path + "\\" + "logfile" + Properties.Settings.Default.logversion + ".xml")) { int nextLogVersionNum = Convert.ToInt32(Properties.Settings.Default.logversion) + 1; Properties.Settings.Default.logversion = nextLogVersionNum.ToString(); Properties.Settings.Default.Save(); ds.WriteXml(path + "\\" + "logfile" + nextLogVersionNum + ".xml"); } else {

    ds.WriteXml(path + "\\" + "logfile" + Properties.Settings.Default.logversion + ".xml"); }

    Vous écrivez deux fois dans une fichier xml : avant le if et dans le if, enlevez celui avant le if.

    Cordialement,

    mercredi 29 juin 2016 09:21
  • merci

    Cardinal dev

    mercredi 29 juin 2016 09:32