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

  1. #1
    Membre expérimenté
    [C# Windows Forms] folderBrowserDialog1 répertoire initial
    Bonjour,

    Je n'arrive pas a ouvrir le dialogue de sélection de répertoire sur un sous répertoire de "Mes documents" !
    Je choisis le sous-repertoire initial avec rootFolder + selectedPath (qui est bien dans rootFolder et qui existe)

    Le folderBrowserDialog s'ouvre bien sur le répertoire choisi pour par exemple ce couple de valeurs :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    folderBrowserDialog1.RootFolder = Environment.SpecialFolder.ProgramFilesX86; // s'ouvre sur programm X86
     folderBrowserDialog1.SelectedPath = @"C:\Program Files (x86)\Acronis";


    Mais pas pour :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
     folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal; //ou   folderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyDocuments
     folderBrowserDialog1.SelectedPath = @"C:\Users\xxxxx\Documents\AA";


    Le folderBrowserDialog1 s'ouvre sur "Documents" (pas sur C:\Users\xxxxx\Documents\AA) et de plus quand je clique sur "Documents" il ne s'ouvre pas

    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
     
     // code complet
      private void bnChoixRep_Click(object sender, EventArgs e)
            {
                string folderName;
                folderBrowserDialog1.Description = "Choisissez le repertoire pour les .cs";
               //Ok pour!
                folderBrowserDialog1.RootFolder = Environment.SpecialFolder.ProgramFilesX86; 
                folderBrowserDialog1.SelectedPath = @"C:\Program Files (x86)\Acronis";
     
                // ça marche pas pour
                folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal;   //ou  folderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyDocuments; 
                folderBrowserDialog1.SelectedPath = @"C:\Users\xxxxx\Documents\AA";
     
                DialogResult result = folderBrowserDialog1.ShowDialog();
                if (result == DialogResult.OK)
                {
                    folderName = folderBrowserDialog1.SelectedPath;
                }


    Une idée ?? bug connu ? une alternative ?

  2. #2
    Membre expérimenté
    Bonjour,
    Je me réponds pour clore le fil ...

    Je ne suis pas le seul à avoir le problème..
    Je soupçonne que le bug résulte du fait que depuis la version Windows 10 anniversery Microsoft a tronqué dans l'explorateur de fichier le nom de l'utilisateur à 5 caractères (mais pourquoi )


    Pour résoudre le problème on peut utiliser l'Api Windows mais c'est pas simple.

    J'utilise donc un sélecteur de fichier ( .initialDirectory marche) , avec pour titre "Choisir n'importe quel fichier du répertoire souhaité" et j'extrais le path du fichier (encore faut-il qu'il y ait un fichier dans le répertoire, mais comme dans mon appli le but c'est de traiter tous les fichiers ".cs" du répertoire c'est ok).

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     var filePath = string.Empty;
                openFileDialog1.Title ="Choisissez n'importe quel fichier du répertoire souhaité";
                openFileDialog1.InitialDirectory = @"C:\Users\xxxxxi\Documents\Visual Studio 2019\Projects\1_MesProgs";
                openFileDialog1.Filter = "txt files (*.cs)|*.cs|All files (*.*)|*.*";
                openFileDialog1.FilterIndex = 2;
                openFileDialog1.RestoreDirectory = true;
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    filePath = openFileDialog1.FileName;
             ...

###raw>template_hook.ano_emploi###