Laden...

Parameter unter Funktionene Tauschen

Erstellt von LeChimp vor 15 Jahren Letzter Beitrag vor 15 Jahren 830 Views
LeChimp Themenstarter:in
25 Beiträge seit 2009
vor 15 Jahren
Parameter unter Funktionene Tauschen

Hallo zusammen,

habe jetzt folgendes Problem.

Ich muss Dateien aus ein USB auf dem Rechner zipen und Kopieren
Das Zipen funktioniert wunderbar (dank eure Hilfe) nun jetzt moechte ich etwas Ordnung im Code einbringen.

Durch die Funktion "Call_Driver" suche ich nach ein USB Stick der die Mappe "Test_Dat" hat.
Ist die Mappe vorhanden, soll er das gesammte Inhalt des USB-Sticks auf den Rechner gezipt werden.

Habe probleme bei der Uebergabe der Parametern...

D.h. : um das gesammte Path des USB-s zu zippen brauche ich den c.Name zu uebergeben,
c.Name besorge ich in der "Call_Driver" Funktion.
der soll aber in der "ZipFolderSubfolderandDat" Funktion unter
"string sourcePath = c.Name;" benutzt werden.

Ich komme jetzt nicht mehr weiter... habe schon einige Versuche gemacht aber finde nicht die richtige Loesung.
Wie koennte ich dieses Problem loesen?

private void tsCeLoadBtn_Click(object sender, EventArgs e)
 {    
            /* Irrelevant fuer mein Problem
            if (_device == Devices.ARMD)
            {
               DatReload();
            } */
            else
            {

               Call_Driver();
               ZipFolderSubfolderandDat();
               Cursor.Current = Cursors.Default;
               
                Target_Select.ShowDialog();
                             
            }
 }

private void Call_Driver()
{
            DriveInfo[] allDrives = DriveInfo.GetDrives();
            string USBFolder = "Test_Dat";
            
            foreach (DriveInfo c in allDrives)
            {
                if (c.DriveType == DriveType.Removable )
                {
                    if (!Directory.Exists( c.Name + USBFolder))
                    {
                        MessageBox.Show("The Test_Dat folder is missing!");
                    }
                    else
                    {
                       USBsourcePath = c.Name;
                                              
                        
                    }
                             
                }
                
             }
 }

private void ZipFolderSubfolderandDat()
{
            Cursor.Current = Cursors.WaitCursor;
  
string zipDatTarget = (Target_Select.SelectedPath + @"\TestDat.zip");

// Hier soll der SourcePath des USB agegeben werden !           
string sourcePath = //c.Name ????;

FastZip fastZipFile = new FastZip();
fastZipFile.CreateZip(zipDatTarget, USBsourcePath, true, "");

}


Vielen Dank !
LeChimp

J
3.331 Beiträge seit 2006
vor 15 Jahren

Hallo,

c.Name besorge ich in der "Call_Driver" Funktion.

damit willst du also einen Wert abfragen. Warum wird diese Methode dann als void deklariert und nicht mit einem string als return-Wert?

Jürgen

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo LeChimp,

wir reden jetzt aber nicht über ganz normale Parameterüber- und -rückgabe? Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore

LeChimp Themenstarter:in
25 Beiträge seit 2009
vor 15 Jahren

@herbivore ups, ich glaube es leigt an meiner Ignoranz, bin eher sehr Neu in C#. Ich dachte habe es richtig geposted. sorry

@Juetho : Ich brauche diese Funktion oefters... ausserdem muss ich achten ob der USB ueberhaubt eingesteckt wurde oder nicht. Und wenn mehrere USB am Rechnler angedockt sind, muss ich abfragen welcher der USB's den Ordner Test_Dat enthealt.

Danke

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo LeChimp,

kein Problem. Schau dir einfach in einem passenden Buch das Kapitel über Methoden an. Da wird dann auch Parameterüber- und -rückgabe besprochen.

herbivore