c# Datei suchen und kopieren

mycitylive

Grünschnabel
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:
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:
C#:
 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.
 
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:
C#:
//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.
 
Zuletzt bearbeitet von einem Moderator:
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 kopieren
 
Zuletzt bearbeitet:
Hallo,

Du musst das natürlich schon in den Code aus deinem ersten Posting einbauen. Ich hab dir nur die grobe Struktur zusammengebaut.
 
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 Salto
 
Zuletzt bearbeitet:
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
 
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.
 
Zuletzt bearbeitet:
Zurück