Autor Beitrag
ottto
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Di 02.06.15 14:07 
Hallo zusammen,
ich möchte den Inhalt eines Ordners in einen anderen verschieben. Aber so, dass der eigentlich (Quell)Ordner erhalten bleibt. Da Move oder Robocopy das QuellVerzeichnis mitnehmen, hab ich versucht das Problem per Consolenanwendung zu lösen. Quell- und Zielverzeichnis werden per Parameter übergeben.
Das Tool funktioniert im Ansatz. Macht aber Probleme sobald ein UnterOrdner verschoben werden soll, den es im Ziel schon gibt. Ich brauche eine Möglichkeit den Zielordner + Inhalt zu überschreiben. Eine Möglichkeit wäre sicher Robocopy als Systembefehl einzubauen. Gibt es eine bessere Lösung?
Danke.
Gruß.
ottto


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
DirectoryInfo verz1 = new DirectoryInfo(args[0]);
                    foreach (FileInfo f in verz1.GetFiles()) //Dateien im QVerzeichnis
                    {
                        string zDatName = f.FullName.Replace(args[0], args[1]);
                        if (File.Exists(zDatName)) //Überschreiben, falls Datei schon vorhanden
                        {
                            File.Delete(zDatName); 
                        }
                        Console.WriteLine(f.FullName);
                        Console.WriteLine(zDatName);
                        File.Move(f.FullName, zDatName);
                    }
                    foreach (DirectoryInfo d in verz1.GetDirectories()) //Verzeichnisse im QVerzeichnis
                    {
                        string zVerName = d.FullName.Replace(args[0], args[1]);
                        Console.WriteLine(d.FullName);
                        Console.WriteLine(zVerName);
                        Directory.Move(d.FullName, zVerName);
                    }
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 02.06.15 17:23 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: ottto
ottto Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Di 02.06.15 18:20 
Hallo Frühlingsrolle,
mein Problem ist, dass es im Zielordner schon gleichnamige Ordner gibt.
z.B.
im Quellordner gibt es Unterordner A,B, und C.
In B gibt es Unterordner B1, B2 und B3, je mit Dateninhalt.
Jetzt verschiebe ich mit meinem Tool alle Unterordner aus der Quelle ins Ziel. Im Ziel gibt es jetzt A,B,C. In B liegen B1,B2 und B3. ->Funktioniert.
Jetzt entsteht in der Quelle wieder ein Ordner B mit dem Unterordner B4. Dieser ist wieder mit Daten gefüllt.
Wenn mein Tool jetzt erneut gestartet wird, soll B4, ins Ziel, in den Ordner B verschoben werden.
Dabei stört dem Directory.Move aber, dass es schon einen Ordner B gibt.

Danke.
Gruß.
ottto
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 02.06.15 19:40 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: ottto
OlafSt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Mi 03.06.15 11:53 
Ich glaube, der Ansatz ist schon nicht optimal.
Vielleicht wäre es cleverer, SrcDir und DestDir dateiweise zu vergleichen (FileExists) und im Falle einer negativen Auskunft den Move-Prozess anzuschubsen.

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.

Für diesen Beitrag haben gedankt: ottto
ottto Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 10.06.15 17:53 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe den Sinn des Tools noch immer nicht erfasst.
Was soll mit dem Quellordner genau passieren?
Sollen dessen Inhalte beibehalten werden und nur eine Art Sicherungskopie im Zielordner erstellt werden oder sollen die Quelldateien samt Ordnern in den Zielordner kommen, wobei der Quellordner leer bliebe?

Sorry wegen der späten Antwort....
Im Quellordner werden, von anderer Stelle, "ständig" Daten abgelegt. Mein Tool soll diese Daten zyklisch (geplanter Task) in den Zielordner verschieben. Also den Quellodner leeren um Platz für neue Daten zu machen.
Ich werde jetzt mal versuchen Robocopy mit einzubauen.
Dann den Vorschlag von OlafSt probieren.

Danke.
Gruß.
ottto
ottto Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Fr 19.06.15 13:54 
Ich jab jetzt ROBOCOPY als Systembefehl mit eingebunden. Sicher nicht die schönste Lösung aber funktioniert.
Danke.
Gruß.
ottto