ERLEDIGT
NEIN
NEIN
ANTWORTEN
18
18
ZUGRIFFE
1349
1349
EMPFEHLEN
-
29.07.11 11:03 #1
- Registriert seit
- Jul 2007
- Beiträge
- 9
Guten Morgen zusammen kann mir einer hier mal helfen ich möchte eine Datei im bestimmten Verzeichniss suchen inbegriffen der Unterverzeichnisse gefundene Datei auswählen und ein kopiervorgang starten!
Für jede Hilfe wäre ich dankbar!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Maschine_Tool { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btn_suchen_Click(object sender, EventArgs e) { try { listBox1.Items.Clear(); //Verzeichnis angeben wo gesucht werden soll //DirectoryInfo di = new DirectoryInfo("D:\\dnc-500"); //DirectoryInfo di = new DirectoryInfo("D:\\Tools"); DirectoryInfo Di = new DirectoryInfo("D:\\Tools"); FileInfo[] nPfad = Di.GetFiles(textBox1.Text, SearchOption.AllDirectories); Int32 nLengePfad = nPfad.GetLength(0); listBox1.Items.AddRange(nPfad); } catch (Exception) { MessageBox.Show("Die gesuchte Datei existiert nicht"); } } private void toolStripButton1_Click(object sender, EventArgs e) { try { Application.Exit(); } catch (Exception) { MessageBox.Show("Beim Beenden ist ein unerwarteter Fehler aufgetreten"); } } private void button1_Click(object sender, EventArgs e) { //System.Diagnostics.Process.Start("D:\\dnc-500\\kopieren.cmd"); } private void Form1_Load(object sender, EventArgs e) { lb_version.Text = Application.ProductVersion; } } }
-
Hallo,
Soweit ich in deinem Code sehen kann hast du die Dateien schon gefunden:
Code csharp:1
FileInfo[] nPfad = Di.GetFiles(textBox1.Text, SearchOption.AllDirectories);
Dann musst du nur mehr für jede dieser FileInfo Instanzen einem File.Copy aufrufen um die Dateien zu kopieren.
-
02.08.11 11:42 #3
- Registriert seit
- Jul 2007
- Beiträge
- 9
Könntest du mir ein Tipp geben wie ich das machen muß!

Ich möchte quasi die Gefundene Dateien eine Auswählen und per Button denn Kopiervorgang starten auf ein festes laufwerk!
Wäre echt klasse wenn du mir dabei helfen würdest
Liebe Grüße
-
Hallo,
Ich würde irgendsowas versuchen:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//Die beiden müssen natürlich gesetzt werden string sourcePath; string targetPath; foreach (FileInfo fi in nPfad) { //Überprüfen ob das Verzeichnis existiert string relPath = fi.DirectoryName.Substring(sourcePath.Length); if (!Directory.Exists(targetPath + relPath)) { //Erstellen da noch nicht vorhanden Directory.CreateDirectory(targetPath + relPath); } //Datei kopieren string relFile = fi.Fullname.Substring(sourcePath.Length); File.Copy(fi.Fullname, targetPath + relFile, true); }
Ich hab das jetzt im Browser programmiert, daher keine Garantie der syntaktischen Korrektheit.
-
02.08.11 12:02 #5
- Registriert seit
- Jul 2007
- Beiträge
- 9
Hi,
aber ich suche nach einer Datei die werden in einer listbox angezeigt und dort wollte ich eine Datei auswählen und per Button an einen vorgegebenen Laufwerk kopierenGeändert von mycitylive (02.08.11 um 12:13 Uhr)
-
Hallo,
Du musst das natürlich schon in den Code aus deinem ersten Posting einbauen. Ich hab dir nur die grobe Struktur zusammengebaut.
-
02.08.11 12:23 #7
- Registriert seit
- Jul 2007
- Beiträge
- 9
Erstmal danke....
Das hat super geklappt wenn du mir jetzt noch sagst wie ich es hinbekomme wenn ich die Datei auswähle in der Listbox und dann denn button kopieren drücke! Mache ich hier ein SaltoGeändert von mycitylive (02.08.11 um 12:29 Uhr)
-
Da bin ich nach langer Suche ja fast auf das gestoßen, was ich auch machen will, allerdings möchte ich die Dateien, welche im ListView aufgelistet werden nicht kopieren, sondern öffnen. Es handelt sich um Word, Excel, etc. Dateien, welche mit der entsprechenden Anwendung dann geöffnet werden sollen.
Kann jemand verraten, wie das funktioniert?
-
Hallo,
starten von Programmen und Dokumenten kannst du mit der Klasse System.Diagnostics.Process erledigen.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Danke, aber wie geht es dann weiter? Ich suche ja Dateien, die mir in einem ListView angezeigt werden. Ich markiere die gewünschte Datei und mache den Rechtsklick und wähle öffnen (Einfacher wäre ein Doppelklick, aber immer der Reihe nach). Nun soll die Datei mit dem Programm geöffnet werden, welchem die Dateiendung zugeordnet ist. Also bei *.doc-Dokumenten soll die Datei in Word geöffnet werden, bei *.xls in Excel, etc.
Geändert von Memfis (24.01.12 um 12:47 Uhr)
-
Schlage in der Hilfe bzw. MSDN die oben genannte Klasse nach und schaue dir die Funktion und Verwendung an (dort gibt es auch Beispiele). Dann kannst zu versuchen, für deine konkrete Anwendung eine Implementierung zu bauen. Falls da Probleme gibt, erkläre sie und zeige den betreffenden Code.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Ich habe mich gestern noch eine ganze Weile mit dem Thema beschäftigt und habe es immerhin geschafft eine fest im Quelltext verankerte Datei öffnen zu können. Nun will ich aber, dass ich eine Datei öffnen kann, welche im ListView zuvor markiert wurde. Im Quelltext ist auch ein Contextmenü vorgesehen, aber es erscheint leider nicht. Warum? Das Problem steht in direktem Zusammenhang mit diesem Thread, aber ich poste hier noch einmal das Bild der GUI und den Quelltext, den ich bislang habe.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Linq; using System.Windows.Forms; using System.IO; using System.Diagnostics; namespace Suche { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { cmbLaufwerk.Items.AddRange(Environment.GetLogicalDrives()); } private void cmdSuchen_Click(object sender, EventArgs e) { listView1.Items.Clear(); string path = cmbLaufwerk.Text; string searchPattern = "*"+txtSuchbegriff.Text+"*"; try { DirectoryInfo di = new DirectoryInfo(path); FileInfo[] files = di.GetFiles(searchPattern, SearchOption.AllDirectories); foreach (FileInfo file in files) { progressBar1.Value += 1; if ((file.Name.Contains(txtSuchbegriff.Text)) && (file.Extension == ".doc")) { listView1.Items.Add(file.Name); } } } catch { MessageBox.Show("Es ist ein Fehler aufgetreten"); } } private void dateiToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void überToolStripMenuItem_Click(object sender, EventArgs e) { Form2 NeuesFenster = new Form2(); NeuesFenster.ShowDialog(); } private void öffnenToolStripMenuItem1_Click(object sender, EventArgs e) { Process.Start("WINWORD.exe", "x:\\test.doc"); } private void öffnenToolStripMenuItem_Click(object sender, EventArgs e) { Process.Start("WINWORD.exe", "x:\\test.doc"); } } }Geändert von Memfis (25.01.12 um 09:44 Uhr)
-
Hallo,
die ausgewählte Datei bekommst du über die Methode "SelectedItems" des ListView heraus:
Code csharp:1 2 3 4 5 6 7 8 9 10
ListView.SelectedListViewItemCollection co = listView1.SelectedItems; if( co.Count > 0 ) { string strFile = co.Item(0).SubItems[0].Text; // Datei string strPath = co.Item(0).SubItems[1].Text; // Ort string strFilePath = Path.Combine(strPath, strFile); Process.Start("WINWORD.exe", strFilePath); }
Zu dem Problem mit dem Kontextmenü kann ich nichts weiter sagen. Da du die entsprechende Funktionalität vermutlich im Form-Designer gebaut hast, erscheint der betreffende Code nicht in deiner geposteten Source.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Danke MCoder. Aber irgendwas scheint mit der Zeile
nicht zu stimmen. Das Wort "Item" wird rot unterstrichen. In der Fehlerbeschreibung heißt es dazuCode :1
string strFile = co.Item(0).SubItems[0].Text; // Datei"
Ich habe natürlich geguckt, was nach "co." sonnst noch angeboten wird, aber keiner der angebotenen Dinge macht Sinn. Ich habe noch "co.IndexOf" probiert, aber dann ist direkt alles falsch. Vermutlich fehlt mir die Using-Direktive , aber welche soll das sein?Fehler 1 "System.Windows.Forms.ListView.SelectedListViewItemCollection" enthält keine Definition für "Item", und es konnte keine Erweiterungsmethode "Item" gefunden werden, die ein erstes Argument vom Typ "System.Windows.Forms.ListView.SelectedListViewItemCollection" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) C:\Users\Memfis\documents\visual studio 2010\Projects\Suche\Suche\Form1.cs 74 37 Suche
-
Hallo,
ja, da hat sich bei mir ein Fehler eingeschlichen
das "Item" ist überflüssig.
GrußCode csharp:1
string strFile = co[0].SubItems[0].Text; // Datei"
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
Ähnliche Themen
-
Bilder suchen und kopieren
Von truelove2k8 im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 31.12.08, 22:16 -
Datei suchen und kopieren
Von dark_ghost im Forum Microsoft WindowsAntworten: 4Letzter Beitrag: 22.02.08, 10:40 -
Suchen und Textteil kopieren
Von ICPUI im Forum PHPAntworten: 27Letzter Beitrag: 05.11.06, 16:32 -
dateien suchen und kopieren
Von keiichi im Forum .NET ArchivAntworten: 2Letzter Beitrag: 09.07.05, 15:00 -
Kopieren/Einfügen/Suchen/Buttons
Von heintz im Forum Office-AnwendungenAntworten: 10Letzter Beitrag: 28.05.04, 10:33





Zitieren

Login





