Pfad durchsuchen bis zu..

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von razzzer530i.

    Pfad durchsuchen bis zu..

    Hey Leute,
    kleines Problem:

    Ich durchsuche einen Pfad inklusive Unterordner nach Dateien.

    "C:\archive\3"

    In diesem Pfad gibt es in 50 Ordnern eine Struktur die so aussieht:
    "C:\archive\3\a\2\arcive"

    Ich möchte den 2. "archive" Ordner ignorieren und nicht durchsuchen. Möglich?

    Durchsuche ja mit

    VB.NET-Quellcode

    1. For Each file In IO.Directory.GetFiles("Pfad", "SearchPattern", IO.SearchOption.AllDirectories)


    Kann ich da nur den letzten Ordner "archive" in jedem Unterverzeichnis ignorieren?

    LG
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    in der For-Schleife einfach prüfen.
    wenn der Pfad \archive enthärt nicht ausführen. Wenn es archive mehrfach geben kann (c:\archive\a\b\c\archive) kannst du auch das vorkommen von archive zählen und darauf prüfen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    in der For-Schleife einfach prüfen.
    wenn der Pfad \archive enthärt nicht ausführen. Wenn es archive mehrfach geben kann (c:\archive\a\b\c\archive) kannst du auch das vorkommen von archive zählen und darauf prüfen.


    Klar die Idee ist ja logisch.
    In jedem Pfad kommt archive 2 mal vor. Ich weiß nur nicht wie ich den 2. ignoriere.
    Wenn archive 2 mal vorkommt dann
    durchsuche den 2. archive ordner nicht


    Baue das so auf:

    VB.NET-Quellcode

    1. For Each sFile In IO.Directory.GetFiles("Pfad", "Pattern", IO.SearchOption.AllDirectories)
    2. For Each line in IO.File.ReadLines(sfile)
    3. 'Mache dies und das
    4. next
    5. next


    Ich weiß nicht richtig wie:

    VB.NET-Quellcode

    1. For Each sFile In IO.Directory.GetFiles("Pfad", "Pattern", IO.SearchOption.AllDirectories)
    2. dim x as integer
    3. if sfile.contains("archive") then
    4. x=x+1
    5. end if
    6. if x=2 then
    7. 'durchsuche nur den Pfad bis x2
    8. For Each line in IO.File.ReadLines(sfile)
    9. 'Mache dies und das
    10. next
    11. end if
    12. next


    Hab keine Ahnung. Eine Idee ist da gucken was klappt aber Hilfe wär toll :)
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~

    razzzer530i schrieb:

    wie ich den 2. ignoriere.
    String-Operation:

    VB.NET-Quellcode

    1. If Not path.EndsWith("archiv") Then
    2. ' was tun
    3. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Oder du zählst wie oft der Text vorkommt.

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Zäht wie oft ein Text in einem Anderen vorkommt
    3. ''' </summary>
    4. ''' <param name="MyText">Der zu durchsuchende Text</param>
    5. ''' <param name="SuchString">Der zu suchende Text</param>
    6. ''' <returns>Anzahl der SuchTexte als integer.</returns>
    7. Private Function CountOf(ByVal MyText As String, ByVal SuchString As String) As Integer
    8. Return MyText.Split({SuchString}, StringSplitOptions.None).Length
    9. End Function
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."