Ist Pfad Datei oder Verzeichniss

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

    Ist Pfad Datei oder Verzeichniss

    Hallo

    Ich arbeite grade weiter an meine Fileexplorer.
    Nun muss ich aber herausfinden ob ein Pfad als String, der vorliegt, eine Datei oder ein Ordner ist.
    Gibt es dazu eine zuverlässige Methode um das herauszufinden?

    mfg
    Compffreak
    So zum Beispiel:

    VB.NET-Quellcode

    1. Private Function IsFileorDirectory(Byval path as String) as String
    2. If IO.File.Exists(path) = true Then
    3. Return "File"
    4. End If
    5. If IO.Directory.Exists(path) = true Then
    6. Return "Directory"
    7. End If
    8. End Function

    8-) faxe1008 8-)
    Du könntest die System.IO.Exists() Methoden benutzen.

    VB.NET-Quellcode

    1. If New System.IO.DirectoryInfo("").Exists() Then
    2. '...
    3. End If
    4. If New System.IO.FileInfo("").Exists Then
    5. '...
    6. End If


    Oder du prüfst auf die Endung des Strings (Extension)

    @enIking1998
    Na, guck mal auf die VB-Version deines Links ...

    @faxe1008
    Nutze eher DirectoryInfo und FileInfo, die haben die Property "Exists"
    @Dodo
    Ich hatte zunächst auch daran gedacht ein Enum zu Returnen, aber ich habe es absichtlich mit String gemacht, weil ich nicht weiß wie weit es mit dem Kenntnisstand des TE's her ist ;)

    Hier die Enum-Version:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Enum [Type]
    2. File
    3. Directory
    4. End Enum
    5. Private Function IsFileorDirectory(ByVal path As String) As Type
    6. Dim typus As Type
    7. If New System.IO.FileInfo(path).Exists() Then
    8. typus = Type.File
    9. Return typus
    10. End If
    11. If New System.IO.DirectoryInfo(path).Exists() Then
    12. typus = Type.Directory
    13. Return typus
    14. End If
    15. End Function

    8-) faxe1008 8-)
    Danke

    So einfach hätt ichs mir nicht vorgestellt :D
    Die Lösung von @LaMiy klappt super.

    faxe1008 schrieb:


    Ich hatte zunächst auch daran gedacht ein Enum zu Returnen, aber ich habe es absichtlich mit String gemacht, weil ich nicht weiß wie weit es mit dem Kenntnisstand des TE's her ist

    Enums kenn ich bereits und nutze sie gern und oft :)
    mfg
    Compffreak
    @faxe1008: is ja egal wie es um den Kenntnisstand bestellt ist, ihm deswegen ziemliche Crap Lösungen zu liefern ist definitiv NICHT das Beste. Denn was man nicht kennt, kann man ja erlernen und sich die Infos zusammen suchen. Wenn man aber schlechten Code vorsetzt, nimmt ein unwissender das als normal an und arbeitet immer weiter so.
    Also immer richtigen, guten, sauberen Code geben, egal welchen Kenntnissstand der TE hat, denn hier darf man ja durchaus sich weiterbilden ;)
    Ich würd eher sowas in der Art vorschlagen:

    VB.NET-Quellcode

    1. Private Function IsDirectory(path As String) As Boolean
    2. Return IO.File.GetAttributes(path) = IO.FileAttributes.Directory
    3. End Function
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o