Autor Beitrag
lodibach
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 22.09.10 14:53 
Hallo, ich möchte ein Programm programmieren, mit dem man Dateien jeder Art aus Unterordnern in einen Ausgabe Ordner erst kopiert & dann löscht. Das Programm soll also rekursiv arbeiten und so jeden Ordner, nachdem er alle Dateien daraus verschoben hat, löschen.
Wäre dankbar für Hilfe.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 22.09.10 14:56 
Hallo!

Wo genau liegt denn jetzt das Problem? :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 22.09.10 14:56 
Und was genau ist jetzt dein Problem?
lodibach Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 22.09.10 15:05 
ich brauche den code für die schleife ;)
tschuldigung ;) vergessen ;):D
Necaremus
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 203
Erhaltene Danke: 18

Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
BeitragVerfasst: Mi 22.09.10 15:36 
prinzipiell sollten dir Rekursionen ja bekannt sein, sonst würdest du danach ja nicht fragen^^
und es ist hier eher selten, dass als "hilfe" der fertige code geliefert wird :p

überleg doch am besten selber erstmal, wie man das am besten lösen kann und versuch es!
wenn du dann scheiterst kannst du ja deinen code posten und dann kann man dir ja immer noch helfen ;)

prinzipiel würd ich sagen sollte es so aussehen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
myRe(DirInfo dIParent){
foreach (dirInfo in diParent)
{
  foreach (file in dirInfo)
  {
    copy(file);
    delete(file);
  }
  myRe(dirInfo)
}}
lodibach Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mi 22.09.10 17:15 
mein Code:
ausblenden volle Höhe C#-Quelltext
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:
      public static void DeleteFileSystemInfo(FileSystemInfo oFileSystemInfo, string CopyPath, bool bDelete)
      {
         oFileSystemInfo.Attributes = FileAttributes.Normal;
         var oDirInfo = oFileSystemInfo as DirectoryInfo;

         if (oDirInfo != null)
         {
            foreach (var oDirEntry in oDirInfo.GetFileSystemInfos())
            {
               DeleteFileSystemInfo(oDirEntry, CopyPath, bDelete);
            }
         }

         //try
         //{
            if (oFile.Name.EndsWith(".mp3") == true)
            { 
               oFile.CopyTo(CopyPath);
               oFile.Delete();
            }
            else
            {
               if (bDelete == true)
               {
                  oFile.Delete();
               }
            }
         //}
         //catch
         //{
         //}
      }


mein Problem:
wie bekomm ich nun meine oFile?
wie kann ich diese bestimmen?

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 22.09.10 20:21 
Wie meinst du das? Du gehst mit der foreach Schleife doch schon alle Dateien durch.

Da musst du jetzt doch nur noch auch etwas damit machen, zum Beispiel den Dateinamen abfragen.

Kann es sein, dass du einfach Code irgendwo kopiert hast und keine Ahnung hast was der macht? Dann solltest du das einmal herausfinden, z.B. mit der Dokumentation:
msdn.microsoft.com/e...ibrary/3xy7db0w.aspx
msdn.microsoft.com/e....filesysteminfo.aspx
msdn.microsoft.com/e...tem.io.fileinfo.aspx
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 23.09.10 08:19 
Hallo,

das Framework bietet schon fertige rekursive Dateiverwaltungsfunktionen an. So kannst du mit Directory.GetFiles dir alle Dateien (inklusive Unterordner) mit einem bestimmten Pattern bekommen. Darüber musst du nur noch iterieren und kopieren/bewegen. Am Enden den Root-Ordner löschen und fertig.

Gruß
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 24.09.10 21:43 
user profile iconlodibach hat folgendes geschrieben Zum zitierten Posting springen:
Hallo, ich möchte ein Programm programmieren, mit dem man Dateien jeder Art aus Unterordnern in einen Ausgabe Ordner erst kopiert & dann löscht.

Erst kopieren, dann löschen - du meinst verschieben?

Wenn das Zielverzeichnis auf dem gleichen Laufwerk liegt wie das Quellverzeichnis, kannst du die Methode System.IO.Directory.Move verwenden.