2010-11-30 7 views
1

il est possible de sélectionner plusieurs fichiers à l'aide OpenFileDialog. (Réglage multiselect comme vrai)dossiers sélectionnez plusieurs fichiers et

la question est de savoir comment sélectionner plusieurs fichiers et dossiers en même temps?

Je sais ce qui est FolderBrowseDialog, je sais que je devrais changer maintenant la touche CTRL ou! : D

Supposons un dossier contient 5 dossier et 2 fichiers, le scénario est de sélectionner par exemple 1 des fichiers et 2 dossiers.

Je ne sais pas pourquoi les gens votent dans cette question !!

----------------- Modifier --------------------

prendre une OpenFileDialog, vous pouvez sélectionner autant de fichiers que vous voulez dans un dossier, d'accord? Je veux quelque chose comme ça, mais avec la possibilité de sélectionner des dossiers aussi! alors qu'OpenFileDialog renvoie les noms de fichiers sélectionnés dans le tableau FileNames ce dialogue renvoie quelque chose Like Le tableau SelectedPaths qui contient les noms de fichiers et les chemins de dossiers.

+0

Comment exactement envisagez-vous qu'une telle interface devrait ressembler? Si l'utilisateur doit être autorisé à sélectionner le fichier A, B et C à partir du dossier X, puis le fichier D à partir du dossier Y, puis l'ensemble du dossier Z? Pour ce genre de fonctionnalité, vous devrez probablement rouler les vôtres. – Pedery

+0

suppose qu'un dossier contient 5 dossiers et 2 fichiers, le scénario consiste à sélectionner par exemple 1 des fichiers et 2 dossiers. –

+0

@HPT: cela crée une ambiguïté sur ce qu'il faut faire lorsqu'un seul dossier est sélectionné et que l'utilisateur appuie sur OK. Entrez dans le dossier ou acceptez-le comme sélection? (Certains plus récents - sur mesure -. Boîtes de dialogue optent pour ce dernier, et ne permettent un double clic pour naviguer dans le dossier est beaucoup plus facile à utiliser que la boîte de dialogue SHBrowseForFolder, mais je suis beaucoup entièrement satisfait de la dépendance à l'égard de la souris) – peterchen

Répondre

1

Le Common Item Dialog (qui remplace le nom de fichier Open Box Common Dialog) a quelques points de personnalisation. Je n'ai pas essayé, mais en accrochant IFileDialogEvents vous devriez pouvoir changer le comportement comme vous avez besoin. (Vous devrez peut-être ajouter un peu de ruse, il était possible avec une OFNHookProc dans le dialogue de fichier de style XP)


Même si cela signifie la lecture d'un grand nombre de documents Microsoft frustrant, il est préférable sur le développement d'un dialogue personnalisé:

Lors de la copie d'une fonction de plate-forme, vous devez copier tout cela.

Cela signifie par exemple coller des fichiers à l'aide de Ctrl + V, Shift + Ins ou du menu contextuel, et si l'extension que je viens d'écrire ne fonctionne pas, je suis énervé.

+0

J'ai lu cela et il semble satisfaire mes exigences, la question est maintenant de savoir comment puis-je les utiliser en C#? tous les échantillons sont écrits en C++. –

+0

Un google rapide ne se présente pas beaucoup, le meilleur est celui-ci: http://stackoverflow.com/questions/4136477/trying-to-open-a-file-dialog-using-the-new-ifiledialog-and- ifileopendialog-interf. koders.com pourrait apparaître plus quand poussé. – peterchen

1

Je l'ai fait dans une application que j'ai créée, et j'ai fini par utiliser un contrôle TreeView et juste mappant le disque dur dans ce contrôle - chaque dossier avait un TreeNode, imbriqué pour correspondre à la structure du dossier, puis les fichiers au niveau le plus profond. Alors qu'il est gourmand en mémoire, un utilisateur peut sélectionner/désélectionner des fichiers individuels, et il est assez facile de sélectionner/désélectionner automatiquement tous les enfants lorsque quelqu'un vérifie un dossier parent.

+0

vous voulez dire que je commence à écrire et mettre en œuvre cela pour moi-même? –

+1

@HPT: Je ne vois pas pourquoi pas. Si vous me demandez d'écrire le code pour vous, vous n'aurez pas beaucoup d'aide sur le site - les gens ici sont heureux de vous orienter dans la bonne direction, mais c'est toujours votre application à développer et les gens ne vont pas pour l'écrire pour vous. Si vous avez besoin de plus de détails avant de pouvoir mettre en œuvre quelque chose comme ça, s'il vous plaît laissez-moi savoir quelle partie de ma suggestion est confuse et je vais le clarifier. – SqlRyan

+0

Je sais comment écrire cela, demander sur SO n'est pas méchant, je ne peux pas le faire, peut-être que c'est pour ne pas faire quelque chose avant ou d'une manière facile qui est possible mais que vous n'êtes pas au courant. –

Questions connexes