Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Einige Unterordner löschen, einige nicht mit Visual Basic 2008 Express

Frage Entwicklung Visual Studio

Mitglied: SWuser

SWuser (Level 1) - Jetzt verbinden

07.12.2010, aktualisiert 11:11 Uhr, 4358 Aufrufe, 3 Kommentare

Hallo Comunity!

Ich habe folgendes Problem:

Ich habe einige automatisch erstellte Archivordner. Diese enthalten Unterordner die nach dem entspr. Monatsdatum benannt werden (bspw: 06-2010).
Jetzt möchte ich mit Visual Basic 2008 die alten Ordner löschen. Es sollen aber die 6 aktuellsten Monate nicht gelöscht werden.
Diese habe ich folgendermaßen herausgefiltert:

Dim a As String = Date.Today.ToString("M-yyyy")
Dim b As String = Date.Now.Month.ToString
Dim c As String = b - 5 & Date.Today.ToString("-yyyy")
Dim d As String = b - 4 & Date.Today.ToString("-yyyy")
Dim ee As String = b - 3 & Date.Today.ToString("-yyyy")
Dim f As String = b - 2 & Date.Today.ToString("-yyyy")
Dim g As String = b - 1 & Date.Today.ToString("-yyyy")


Löschen würde ich so:
IO.Directory.Delete(Pfad, True)

Wie kann ich dort jetzt die Ausnahmen einfügen? Bspw: IO.Directory.Delete(Pfad, Ausgenommen a c d ee f g, True)

Ich hoffe, dass jemand mein "Problem" versteht.
Ich bin auch für andere Lösungsvorschläge offen!

Gruß
Felix
Mitglied: SlainteMhath
07.12.2010 um 11:34 Uhr
Moin.

du musst die Verz.-Ebene über deinem Pfad durchlaufen und alles löschen was nicht deinen Kriterien entspricht:
.Etwa so:
01.
for each dir as ... in io.GetDirectories(Pfad) 
02.
  if dir.path <> c and dir.path <> d..... then 
03.
    io....delete(dir,true) 
04.
  end if 
05.
next
Genauen Syntax btw Klassennamen musst du dir selbst raussuchen, hab z.Zt. kein VS installietr.

lg,
SLainte
Bitte warten ..
Mitglied: bastla
07.12.2010 um 11:51 Uhr
... oder, da die Ermittlung von c, d, e, ... ohnehin ziemlich fragwürdig ist (ungetesteter Ansatz):
01.
Dim i as Integer, Excl As String = "#" 
02.
For i = -5 To 0 
03.
    Excl = Excl & DateAdd(DateInterval.Month, i, Date.Today).ToString("M-yyyy") & "#" 
04.
Next 
05.
Dim Folder, FolderName As String 
06.
For Each Folder In IO.Directory.GetDirectories("D:\Archiv") 
07.
    FolderName = Mid(Folder, InStrRev(Folder, "\") + 1) 
08.
    If InStr(Excl, "#" & FolderName & "#") = 0 Then IO.Directory.Delete(Folder, True) 
09.
Next
Dem Beispiel "06-2010" entsprechend wäre übrigens die Formatierung mit "MM-yyyy" passender ...

BTW: Die Schreibweise "M-JJJJ" (oder auch "MM-JJJJ") für die Monatsordner finde ich suboptimal - abgesehen von der besseren Sortierbarkeit würde sich mit "JJJJ-MM" das Ganze darauf reduzieren, den String für den ersten nicht zu löschenden Monat zu ermitteln und danach einfach per
If FolderName < EntsprechenderMonat Then ...
zu vergleichen.

Grüße
bastla
Bitte warten ..
Mitglied: SWuser
07.12.2010 um 14:26 Uhr
Danke euch beiden! Hab es hinbekommen.

@bastla: Die Namenskonvention der Ordner ist leider "historisch gewachsen". Da auf diese Ordner noch einige andere Prozesse zugreifen ist es sehr mühsehlig dies umzustellen. Ich gebe dir aber recht.
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Visual Basic persönliche MSTSC Verbindung (3)

Frage von florianza zum Thema VB for Applications ...

Visual Studio
gelöst Remotedienst prüfen mit Visual Basic (1)

Frage von flyingmichael zum Thema Visual Studio ...

Visual Studio
Mit Visual Basic auf Shopware 5 API zugreifen (9)

Frage von SmogKiel zum Thema Visual Studio ...

Visual Studio
gelöst Pastebin auslesen mit Visual Basic? (2)

Frage von UltraZz zum Thema Visual Studio ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...