C# Dateityp Abfragen und DragDrop

WaZZkeSS

Erfahrenes Mitglied
Hallo miteinander!


Sorry wenn ich gleich zur Sache komme.Ich habe 2 Probleme.


1)
Ich habe einen Treeview und einen ListView in der ich die dateien vom gewählten Laufwerk im TreeView anzeige.
Desweiteereen habe ich eine Funktion die mir alle Dateien im Ordner Exportiert und Kopiert usw.
Soweit funktioniert es.

Nun würde ich gerne die Dateitypen wissen bzw. Abfragen die kopiert bzw. Exportiert werden.

Vorgang
Im treeView ist ein Laufwerk oder ein Ordner gewählt. Mit einem Button werden alle Dateien in diesem Ordner kopiert. Nun möchte ich als bsp. nur die Bildateien kopieren weill ich als bsp. die größe oder Auflösung ändern möchte.
Wenn die Dateien markiert werden und dann erst kopiert, dann funktioniert es auch weil ja cuh nur die Bilddateien markiert wurde. Aber wie kann ich bei GetFiles den Dateityp der aktuellen Datei (e) Abfragen.


2)
Kennt jemand eine eine gute kurze Lösung wie ich Ordner vom treeView in ListView per Drag&Drop kopieren kann. Umgekehrt auch.


Wäre für jede Hilfe sehr dankbar.

WaZZkeSS
 
Zu 1:
Versuch mal mit *.jpg oder so zu arbeiten!!
erstellst dir ne Combobox in der alle Dateitypen (Endungen) stehen und damit kannst du dann wählen welche kopiert werden sollen!!

Zu 2:
Du kannst bei den Forms ein DragandDrop Element aktivieren!!

Bei den Eigenschaften gibt es die Option Allow Drop, diese auf true dann müsste es
funktionieren!!

Oder mit "Steuerelement.AllowDrop = true" ;)

Lg Mohag
 
Zuletzt bearbeitet:
Hy Mohag!

Danke vorerst für die Antwort.

Zu 1
Wäre das nicht einbisschen aufwändiger? Ich habe zuerst sowas schon eingebaut gehabt aber es muss doch sowas ähnliches wie DataFormats.Bitmap geben.
C#:
...
                             foreach (string s in Directory.GetFiles(tvwRoot.SelectedNode.FullPath))
                            {
                                string[] teileExt = s.Split(new char[] { '.' });
                                if (teileExt.Length > 1)
                                {
                                    string currEX = "." + teileExt[1];
                                    if (ext[0].ToString() == currEX.ToLower() || 
                                        ext[1].ToString() == currEX.ToLower() ||
                                        ext[2].ToString() == currEX.ToLower() ||
                                        ext[3].ToString() == currEX.ToLower() ||
                                        ext[4].ToString() == currEX.ToLower() ||
                                        ext[5].ToString() == currEX.ToLower() ||
                                        ext[5].ToString() == currEX.ToLower())
                                    {
...


Zu 2
Die Eigenschaften habe kenne ich, was ich gemeint habe war eher ein Bsp. Vorerst habe ich diese Metode fertig
C#:
private void ltvViewer_DragOver(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
            else { e.Effect = DragDropEffects.None; }
        }


Gruß
WaZZkeSS
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück