Laden...

[gelöst] Dateien aus verschiedenen Ordnern in einem Explorer(artigen)-Fenster anzeigen

Erstellt von freaky vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.852 Views
F
freaky Themenstarter:in
6 Beiträge seit 2011
vor 13 Jahren
[gelöst] Dateien aus verschiedenen Ordnern in einem Explorer(artigen)-Fenster anzeigen

Hallo liebe Community,
ich habe eine Windows-Forms-Anwendung, bei der man einen Ordner angeben kann und alle Dateien, die sich in diesem Ordner und den Unterordnern befinden ausliest.
Nun möchte ich aber keine Liste erstellt habe, die mir diese Dateien anzeigt, sondern ich möchte, dass ein Windows-Explorer geöffnet wird und mir in diesem alle Dateien, die ich ausgelesen habe anzeigt. Am Ende sollte es dann so ähnlich aussehen, wie bei der Windows suche, dass die Dateien in Miniaturansicht dargestellt werden und ich mir diese Angucken oder auch öffnen kann, was z.B. bei Bildern sehr praktisch ist.

Ich habe schon Versucht mit

Process.Start("explorer.exe",Datei)

zu arbeiten, der zeigt jedoch immer nur eine Datei im korrekten Dateipfad an.

Ich hoffe jemand weiß mir zu helfen.

P.S. es muss nicht der Explorer sein, aber die Dateien sollte man eben öffnen und angucken können.
Es können auch mehrere tausend Dateien sein

Vielen Dank für Eure Hilfe!

mfg

Verzicht ist etwas für Nonnen nichts für meinen PC.
Ebenso gehören Antiquitäten ins Museum, aber nicht in meinen PC.

B
196 Beiträge seit 2007
vor 13 Jahren

Das erste was mir einfällt wäre ein Listview (View: LargeIcon) oder sowas in der Art.

your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself

F
freaky Themenstarter:in
6 Beiträge seit 2011
vor 13 Jahren

okay danke, ich werde das mal eben ausprobieren

ich hab mich gerade an virtuelle ordner erinnert, das sind xml files, ich versuch auch da mal parameter auszulesen und zu gucken, ob ich damit was anfangen kann

mfg

Verzicht ist etwas für Nonnen nichts für meinen PC.
Ebenso gehören Antiquitäten ins Museum, aber nicht in meinen PC.

F
freaky Themenstarter:in
6 Beiträge seit 2011
vor 13 Jahren
foreach (string file in Dateien)
            {
                listView1.Items.Add(new ListViewItem(file));
            }

so hab ich das jetzt gemacht, Dateien ist eine List<string>

dabei bekomme ich folgendes Ergebnis, die strings werden einfach ausgegeben, aber nicht die datein an sich. Gibt es eine möglichkeit, die Dateien direkt anzeigen zu lassen und nicht nur die strings?

Verzicht ist etwas für Nonnen nichts für meinen PC.
Ebenso gehören Antiquitäten ins Museum, aber nicht in meinen PC.

T
156 Beiträge seit 2010
vor 13 Jahren

Hi,
was meinst Du denn damit, die Dateien direkt anzeigen zu lassen? Die Symbole, die Du auch im Explorer siehst? Klar kannst Du auch Symbole anzeigen lassen. Aber welches Symbol für welche Dateiendung, das musst Du wohl selber implementieren.

Zu Deinem Screenshot: Es macht keinen Sinn, den Username oben unkenntlich zu machen, wenn man ihn bei dem ausgewählten Eintrag eh lesen kann. Nur mal so als Tip.
Marko

1.130 Beiträge seit 2007
vor 13 Jahren

selber implementieren.

.net framework!?

Icon.ExtractAssociatedIcon-Methode

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

5.299 Beiträge seit 2008
vor 13 Jahren

Ich habe schon Versucht mit

Process.Start("explorer.exe",Datei)  

zu arbeiten, der zeigt jedoch immer nur eine Datei im korrekten Dateipfad an.

hast du mal versucht

Process.Start("explorer.exe",Ordner)

?

Der frühe Apfel fängt den Wurm.

F
freaky Themenstarter:in
6 Beiträge seit 2011
vor 13 Jahren

Also, ich versuche das jetzt nochmal genau zu erklären..
wenn man z.B. bei windows vista/7 bei der suche z.b. nach bildern sucht, dann bekommt man das suchergebnis angezeigt, da stehen dann alle datein drinnen, aus verschiedenen ordnern. Dort kann man dann die ansicht auswählen und man kann die datein auch öffnen. ich hätte dies gerne mit meinen dateien, also, dass diese datein, die mein programm ausliest eben so oder so ähnlich angezeigt werden.
ich habe jetzt versucht mit virtuellen ordnern zu arbeiten, ich habe nur das problem, dass ich mich in dem xml von den virtuellen ordnern nicht so gut auskenne, aus der microsoft-website werde ich jetzt auch nicht besonders schlau, aber ich versuche weiterhin hinter die logik zu kommen.
für alle, die es nicht wissen, einen virtuellen ordner erstellt man, indem man sein suchergebnis speichert, welches dann ein virtueller ordner ist.
diesen ordner kann man dann mit z.b. visual studio öffnen und man sieht eine xml struktur, in dem auch die suchparameter angegeben sind. nun versuche ich, meine datein in diese parameter zu schreiben, um diese dann in einem virtuellen ordner anzuzeigen. klappt nur nich besonders gut, da ich wie gesagt die struktur in diesem xml-file nicht kenne. falls diese jemand kennt oder eine seite, dann bitte hier posten, dann kann ich versuchen eine lösung zu finden und werde diese dann ausreichend kommentieren, um sie für andere user, die ähnliche probleme haben zu dokumentieren.

mfg

Verzicht ist etwas für Nonnen nichts für meinen PC.
Ebenso gehören Antiquitäten ins Museum, aber nicht in meinen PC.

49.485 Beiträge seit 2005
vor 13 Jahren
5.299 Beiträge seit 2008
vor 13 Jahren

ich habe jetzt versucht mit virtuellen ordnern zu arbeiten

Ist denn das, was du willst?
Weil im virtuellen Ordner sind ja nicht deine Dateinamen oder sonstwas gespeichert, sondern nur die Parameter einer Windows-Dateisuche.

(o.T.: vielen Dank übrigens für den Hint mit der gespeicherten Dateisuche - ich hatte vorher nie verstanden, warum ich mit der Suche nicht mehr nach Extensions suchen kann, wie früher)

Der frühe Apfel fängt den Wurm.

F
freaky Themenstarter:in
6 Beiträge seit 2011
vor 13 Jahren

@herbivore

danke, ich hab die seite nur in deutsch gefunden, da sind komischerweise nicht alle parameter aufgelistet, ich hab wie ein blöder versucht mir das zusammenzureimen^^
bin echt nicht auf die idee gekommen, dass die seite auf englisch mehr informationen bieten könnte

@ErfinderDesRades

ja, das is genau dass, was ich will, denn ich möchte ja alle datein aus einem bestimmten ordner in minaturansicht zu sehen bekommen und auch auswählen können, oder eben nur bestimmte dateitypen. das ist ja nichts anders, als wenn ich in einem bestimmten ordner nach . oder *.jpg suche.

ich versuche das morgen im geschäft noch mal hinzubekommen und dann poste ich mal meine fortschritte

mfg

Verzicht ist etwas für Nonnen nichts für meinen PC.
Ebenso gehören Antiquitäten ins Museum, aber nicht in meinen PC.

5.299 Beiträge seit 2008
vor 13 Jahren

mir scheint das Format nicht so ungeheuerlich geheimnisvoll:

<?xml version="1.0"?>
<persistedQuery version="1.0">
   <viewInfo viewMode="icons" iconSize="96" stackIconSize="0" displayName="Suchergebnisse in &quot;ExeFiles&quot;" autoListFlags="0">
      <visibleColumns>
         <column viewField="System.ItemNameDisplay"/>
         <column viewField="System.Photo.DateTaken"/>
         <column viewField="System.ItemFolderPathDisplayNarrow"/>
         <column viewField="System.Keywords"/>
         <column viewField="System.Size"/>
         <column viewField="System.Rating"/>
      </visibleColumns>
      <sortList>
         <sort viewField="System.ItemNameDisplay" direction="ascending"/>
      </sortList>
   </viewInfo>
   <query>
      <conditions>
         <condition type="orCondition">
            <attributes/>
            <condition type="leafCondition" property="System.FileExtension" propertyType="string" operator="starts with" value=".jpg" valuetype="System.StructuredQueryType.String">
               <attributes/>
            </condition>
         </condition>
      </conditions>
      <kindList>
         <kind name="item"/>
      </kindList>
      <providers>
         <provider clsid="{88CF4A86-5D7A-48EB-B53E-EA388A390096}"/>
      </providers>
      <scope>
         <include path="C:\ExeFiles"/>
      </scope>
   </query>
   <properties>
      <author Type="string">Account1</author>
   </properties>
</persistedQuery>

Da habichjetzt nur die eine LeafCondition dringelassen, und ".jpg" reingehackt, und die Datei dann als "dada.search-ms" abgespeichert und geht.

Der frühe Apfel fängt den Wurm.

F
freaky Themenstarter:in
6 Beiträge seit 2011
vor 13 Jahren

Also ich möchte mich nun noch einmal für eure hilfe bedanken.

ich hab jetzt ein programm, dass den Ordnerpfad, die gewünschten dateitypen und ob die unterordner mit einbezogen werden sollen, ausliest.

mein programm schreibt jetzt einfach eine xml-datei und nennt diese bla.search-ms.
ich habe den code von ErfinderDesRades genommen und lediglich folgendes durch variablen ersetzt:
value in

<condition type="leafCondition" property="System.FileExtension" propertyType="string" operator="starts with" value=".jpg" valuetype="System.StructuredQueryType.String">

kind in

<kind name="item"/>

und
path in

<include path="C:\ExeFiles"/>

zusätzlich habe hier aber noch angegeben, ob die unterordner in die suche mit einbezogen werden sollen:

nonRecursive="false" / nonRecursive="true"

d.h. wenn, z.B. bei mir der fall der user einen ordner mit tausenden von unterordner hat und in jedem n paar bilder sind und nicht jeden ordner durchsehen, dass er dann einfach den pfad angibt, sagt, es sollen nur bilder sein und die unterordner in die suche mit eineziehen soll.
et voilà, er bekommt alles schön aufgelistet

hier noch n screen (is nur die rohansicht, design kommt noch)

Verzicht ist etwas für Nonnen nichts für meinen PC.
Ebenso gehören Antiquitäten ins Museum, aber nicht in meinen PC.