begin process at 2010 02 09 20:16:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > DIRECTORY BROWSER

DIRECTORY BROWSER


 Information sur la source

Note :
7 / 10 - par 4 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichiers / Disque Source .NET ( DotNet ) Classé sous :directory, browser, répertoire Niveau :Initié Date de création :12/04/2003 Date de mise à jour :12/04/2003 01:12:36 Vu / téléchargé :13 468 / 716

Auteur : gg00xiv

Ecrire un message privé
Site perso
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce petit programme permet d'utiliser l'API Windows : SHBrowseForFolder afin de récupérer un répertoire tel qu'on le ferait avec un OpenFileDialog.

J'ai donc nommé ce composant : OpenDirDialog.

il s'utilise comme suit :
OpenDirDialog odd = new OpenDirDialog();
odd.Show(base.Handle,"Sélectionn ez un répertoire ...");
MessageBox.Show(odd.Directory); // par exemple pour l'affichage

Source

  • ...
  • [DllImport("shell32.dll")]
  • private static extern int SHGetPathFromIDListA(int pidl, byte[] path);
  • [DllImport("shell32.dll")]
  • private static extern int SHBrowseForFolderA(ref BROWSEINFO browseinfo);
  • [DllImport("ole32.dll")]
  • private static extern void CoTaskMemFree(int pv);
  • ...
  • public void Show(IntPtr hWnd, string title)
  • {
  • BROWSEINFO bi = new BROWSEINFO();
  • int pidl;
  • byte[] path = new byte[260];
  • bi.hOwner = hWnd;
  • bi.pidlRoot = 0;
  • bi.title = title;
  • bi.flags = 1;
  • pidl = SHBrowseForFolderA(ref bi);
  • SHGetPathFromIDListA(pidl,path);
  • this.directory = Encoding.ASCII.GetString(path);
  • CoTaskMemFree(pidl);
  • }
  • ...
...
[DllImport("shell32.dll")]
private static extern int SHGetPathFromIDListA(int pidl, byte[] path);

[DllImport("shell32.dll")]
private static extern int SHBrowseForFolderA(ref BROWSEINFO browseinfo);

[DllImport("ole32.dll")]
private static extern void CoTaskMemFree(int pv);

...

public void Show(IntPtr hWnd, string title)
{
	BROWSEINFO bi = new BROWSEINFO();
	int pidl;
	byte[] path = new byte[260];

	bi.hOwner = hWnd;
	bi.pidlRoot = 0;
	bi.title = title;
	bi.flags = 1;

	pidl = SHBrowseForFolderA(ref bi);
	SHGetPathFromIDListA(pidl,path);
	this.directory = Encoding.ASCII.GetString(path);

	CoTaskMemFree(pidl);
}
...

 Conclusion

L'api Windows doit être utilisée le moins possible.
Je n'ai pas trouver de composant faisant ceci donc voilà, s'il en existe dîtes le moi :)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) XMLSERIALIZER ET FICHIERS DE CONFIG
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPOSANT D'AUTHENTIFICATION SQLSERVER
Source avec Zip Source .NET (Dotnet) CHARGER UNE ASSEMBLY DANS LE CODE
Source avec Zip Source avec une capture Source .NET (Dotnet) PROGRESSBAR STYLE NETSCAPE
Source avec Zip Source avec une capture Source .NET (Dotnet) DATABINDING POUR AFFICHER/EDITER UN FORMULAIRE DE DONNÉES

 Sources de la même categorie

Source avec Zip PILOTER WORD VIA MICROSOFT.OFFICE.INTEROP.WORD par whismeril
Source avec Zip PILOTER EXCEL VIA MICROSOFT.OFFICE.INTEROP.EXCEL par whismeril
Source avec Zip Source .NET (Dotnet) CHECK IDENTICAL FILES par eldim
Source avec Zip Source avec une capture Source .NET (Dotnet) RICHTEXTBOX NUMÉROTÉ (NUMÉROS DE LIGNES) par jray
Source avec Zip Source avec une capture SURVEILLER FICHIERS CRÉÉS AVEC FILESYSTEMWATCHER AMÉLIORÉ par TheOnlyMaX

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) CHECK IDENTICAL FILES par eldim
Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE SIMPLE DE BALLE EN MOUVEMENT par lgauthier
Source avec Zip Source avec une capture Source .NET (Dotnet) EFEXP - CONTRÔLE EXPLORATEUR DE FICHIER par Nikoui
Source avec Zip Source avec une capture Source .NET (Dotnet) LOGICIEL DE RECHERCHE OU REMPLACEMENT DANS UN RÉPERTOIRE ET ... par billou_13
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTRÔLES D'ACCÈS À L'ARBORESCENCE DES RÉPERTOIRES par bob94700

Commentaires et avis

Commentaire de gg00xiv le 12/04/2003 01:46:40

un petit soucis, le titre du dialog censé s'affiché n'apparait pas. le paramêtre "string" est sans doute en cause.
Si quelqu'un a une solution ...

merci

Commentaire de chessandmat le 10/07/2003 14:12:53

Merci pour ce code qui m'a ete tres pratique. Par contre je crois qu'on peut mettre une option pour creer et supprimer des repertoires dans le browser. Sais-tu ce qu'il faudrait rajouter ?
Merci d'avance
Cordialement
chessandmat

Commentaire de chessandmat le 10/07/2003 14:15:18

gg00xiv pour ton pb, voici une correction :
public void Show(IntPtr hWnd, string title)
{
BROWSEINFO bi = new BROWSEINFO();
int pidl;
byte[] path = new byte[260];
byte[] path2;

bi.hOwner = hWnd;
bi.pidlRoot = 0;
bi.title = title;
bi.flags = 1;

pidl = SHBrowseForFolderA(ref bi);
SHGetPathFromIDListA(pidl,path);
int i;
for (i = 0 ; i < 260 ; i++)
if (path[i] == 0)
break;
path2 = new byte[i];
for (int j = 0 ; j < i ; j++)
path2[j] = path[j];
this.directory = Encoding.ASCII.GetString(path2);

CoTaskMemFree(pidl);
}

Commentaire de chessandmat le 10/07/2003 16:09:04

Ca serait pas mal si on pouvait choisir un repertoire preselectionner

Commentaire de gg00xiv le 18/07/2003 18:54:47

Bon, en fait dans VS.NET 2003 pour ceux qui l'on un composant nommé FolderBrowserDialog existe et se met en place tout comme OpenFileDialog ou SaveFileDialog donc toute cette prise de tête avec les API aura été vaine :)

Commentaire de chessandmat le 22/07/2003 14:38:31

Savez-vous comment faire pour que l'on puisse creer ou supprimer des repertoires avec le directory browser ?
Merci d'avance.
P.S. : j'ai VS.NET 2002

Commentaire de gg00xiv le 24/07/2003 16:57:59

Tu a une propriété de FolderBrowserDialog qui s'appelle ShowNewFolderButton et qui est a true par defaut

Pour supprimer tu tape juste sur "Suppr" en te positionnant sur un dossier ... enfin je pense

Commentaire de chessandmat le 24/07/2003 18:27:05

Sauf que je n'ai pas VS.NET 2003 et donc pas FolderBrowserDialog. J'ai juste VS.NET 2002. Donc je reitere ma question avec le code donne precedemment.
Merci quand mem.

Commentaire de tiborg le 19/09/2003 18:39:57

J'ai un pti soucis avec ta classe, le répertoire renvoyé est sous un string qui fait toujours 260 caractères, et ça me cause des problèmes pour la suite dans mon programme car ce n'est pas la réelle longueur de la chaine.. peux tu m'aider ou m'apporter un update 2.3 :) ?

Commentaire de afra59 le 22/09/2003 17:28:17

folderBrowserDialog fait partie du framework 1.1 et pas de visual, vous pouvez donc l'utiliser du moment que vous avait le framework dans cette version

Commentaire de gg00xiv le 23/09/2003 08:39:03

update 2.3 :)

this.directory = Encoding.ASCII.GetString(path).Replace("","");

Commentaire de gg00xiv le 23/09/2003 08:40:10

ya un caractère ki n'est apparemment pas passé :
desolé :

this.directory = Encoding.ASCII.GetString(path).Replace(" 0","");

Commentaire de gg00xiv le 23/09/2003 08:41:02

bon apparemment, les backslash ne passent plus sur les postes... tres ennuyeux
this.directory = Encoding.ASCII.GetString(path).Replace("\0","");

Commentaire de tiborg le 23/09/2003 18:49:29

Merci gg00xiv pour l'update 2.3 !
en fait j'avais trouvé la solution y a quelques jours et je voulais la poster mais le server web lui même ne marchait pas.. :o)
En tout cas continue à nous pondre des pti codes bien sympa comme ça .. c'est super utile !
ciao

Commentaire de cariboux le 06/01/2004 15:24:18

Merci gg00xiv pour ce petit bout de code bien sympathique quand on utilise pas le framework 1.1 :)

Il y a t il un moyen de trapper le click sur le bouton annuler de la fenetre affichant l'arboresence?

Merci

Commentaire de sparky_rv le 18/01/2004 18:46:39

pas mal la petite fonction ! parcontre j en ai pas trouvé une qui permetrait d avoir le contenu d un repertoire ... une fonction du genre "FileBrowserDialog" car j ai fait une appli qui crache des fichiers dans un rep et j ai pas trouvé mieu que d ouvrir un explorer dans le rep en question ... voila donc si qqu un a un tuyau merci...
ps peut etre en utilisant "OpenFileDialog" je suis dessus ... a suivre :/

Commentaire de aljalvin le 19/03/2008 12:30:52

Ton code est super, petite amélioration

Au lieu d'un Void mets un boolean
déclare une variable boolean Réponse  
et aprés ,

if (pidl <> 0)  Réponse  = True  
else Réponse  = False
Return Réponse

ce qui te permet de faire l'intruction suivante
if Odd.Show(....) = true
{
//Traitement  
Odd.directory
}

je te remercie encore pour ce code, il m'as était bien utile













 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pb verif répertoires [ par jdaviaud ] Là je fais face à un pb dont je comprends pas la logique :Je récupère le nom du répertoire d'où s'execute mon prog :RepActuel = Directory.GetCurrentDi Erreur avec Directory.Delete [ par s7even ] bonjour, j'essaye d'effacer un répertoire contenant des sous répertoires et plein de fichiers il m'efface tout sauf le répertoire de départ et à la Créer un répertoire [ par Franckyom50 ] Franckyx Salutation, Voilà, j'aimerais savoir comment faire pour créer un répertoire pour pouvoir ensuite y transférer des fichiers, par un simple ASP.NET et IIS ??!!! [ par patoche92 ] Bonjour à tous et à toutes.Je suis confronté à un grave problème : Je n'arrive pas à faire tourner ASP.NET.....J'ai installé IIS qui fonctionne très b WebService, help ! Connaître le répertoire du fichier ASMX [ par vow ] Bonjour,Je suis désespéré, et aussi un peu débutant en .Net .J'aimerais récuperer le chemin complet ou le chemin du répertoire du fichier ASMX de mon Renommer un répertoire / fichier [ par bob94700 ] Bonjour, Je cherche une fonction qui me permette de modifier le nom d'un répertoire ou d'un fichier sous c#.Je sais qu'il y a rename(oldNom, newNom) All fichier [ par JCpp ] Je cherche une source qui enregistre tout les fichiers du disque dure dans un fichier.J'en ai réalisé un, mai il prend trop trop ligne. Avec Directory lister les fichiers d'un répertoire en visual studio c#[débutante] [ par gwady ] Bonsoir,Voila, je voudrais lister les fichiers d'un répertoire bien précis, mais je ne sais pas comment faire avec visual studio c#. En lisant certain copie d'un fichier d'un répertoire vers un autre [ par Thanos_the_yopper ] j'imagine que ca doit être tout con, mais comment qu'on fait ?Final Fantasy Memories Venez découvrir les origines d'une saga Status de fichier [ par SharpMao ] Salut à tous,Est-ce que quelqu'un sait si il y a un moyen de savoir si un fichier est actuellement ouvert en écriture par un autre processus? Je m'exp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales