Ordnername abfragen und als Variable speichern

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von little-nemo.

    Ordnername abfragen und als Variable speichern

    Hallo Leute,

    nach CATScripting muss ich mich jetzt mit VB2008 beschäftigen. Ich muss jetzt eine Abteilung in unser PDM integrieren, dazu werden deren Daten als Zip-File eingecheckt. Nach dem Check-Out muss das Zip-File entpacken werden.
    Mein Script erkennt das Zip-File und ich kann es auch entpacken. Im entpackent Zip-File ist eine Ordnerstruktur und ich muss jetzt diesen Ordnername haben damit ich in der Stratroutine des Programmes den Pfad zum PRJ-File zusetzen.
    Ich bekomme aber immer nur den Namen des Zip-Files angegeben und ich stehe auf dem Schlauch.

    Gruß
    Norbert

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub cmdFinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFinden.Click
    3. Try
    4. Dim ContainerName
    5. ContainerName = (System.IO.Path.GetFileName(System.IO.Directory.GetFiles("D:\vonhier")(0)))
    6. MessageBox.Show(ContainerName)
    7. Catch ex As Exception
    8. MsgBox("Keine Datei vorhanden")
    9. End Try
    10. End Sub
    11. Private Sub cmdOrdnerfinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOrdnerfinden.Click
    12. Dim FolderName
    13. Dim Pfad = "D:\vonhier\."
    14. FolderName = (System.IO.Path.GetDirectoryName("D:\vonhier\."))
    15. 'FolderName = Dir(Pfad)
    16. MsgBox(FolderName)
    17. End Sub
    18. End Class
    Ich hab den Code amgepasst, weil der wirklich schrecklich aussieht ;)

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub cmdFinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    3. If IO.File.Exists(System.IO.Path.GetFileName(System.IO.Directory.GetFiles("D:\vonhier")(0))) Then
    4. Dim ContainerName As String = System.IO.Path.GetFileName(System.IO.Directory.GetFiles("D:\vonhier")(0))
    5. MessageBox.Show(ContainerName)
    6. Else
    7. MessageBox.Show("Keine Datei vorhanden")
    8. End If
    9. End Sub
    10. Private Sub cmdOrdnerfinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    11. Dim FolderName As String = (System.IO.Path.GetDirectoryName("D:\vonhier\."))
    12. Dim Pfad As String = "D:\vonhier\."
    13. MessageBox.Show(FolderName)
    14. End Sub
    15. End Class


    Schon mit IO.FileInfo versucht?

    mfg. EiPott
    Hallo EiPott,

    ich kämpfe mich gerade durch das Kapitel 7 vom openbook visualbasic_2008 von galileo Computing. Auf IO.FileInfo bin ich noch nicht gekommen. Dein Code sieht sauber aus.

    Hier noch einmal eine kleine Verdeutlichung:

    aus dem PDM kommt => 1234567890.zip
    nach dem entpacken steht dort => E-Cad_test (Ordnerstruktur)
    in dieser Struktur stehen folgende Dateien: E-Cad_test\E-Cad_test.prj und E-Cad_test\PCB\E-Cad_test.pcb

    Ich glaube mir ist gerade ein Lösungsanstz gekommen, der Ordnername ist auch gleichzeitig immer der Name der Startdateien .prj bzw. .pcb. D.h. ich kann doch nach den Dateien suchen und das Ergebnis als Variable nehmen. Oder ?

    Gruß Norbert

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „little-nemo“ ()

    Hay,
    also das geht denke ich mal auch so:

    -Nenn die ListBox Dateien
    -Erstell ne TextBox und nenne sie Suchen

    Hier der Code :

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Selected As String
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dateien.Items.Clear()
    5. For Each file As String In IO.Directory.GetFiles("D:\")
    6. Dateien.Items.Add(file)
    7. Next
    8. End Sub
    9. Private Sub Suchen_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Suchen.TextChanged
    10. For i As Integer = 0 To Dateien.Items.Count - 1
    11. If Dateien.Items.Item(i).ToString().Contains(Suchen.Text) Then
    12. Dateien.SetSelected(i, True)
    13. End If
    14. Next
    15. End Sub
    16. Private Sub Dateien_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Dateien.SelectedIndexChanged
    17. Selected = Dateien.SelectedItem
    18. End Sub
    19. End Class

    In der Selected String Variable hast du dann immer den aktuellen Dateipfad von dem Item was gerade markiert ist.

    Edit : little-nemo wo liegt denn das Problem?
    Du ziehst links aus der ToolBox eine ListBox aufs Formular und eine TextBox.
    Du klickst die ListBox mit rechtsklick an -> scrollst in den Einstellungen hoch -> bei Namen schreibst du : Dateien
    Dann dasselbe bei der TextBox -> bei Namen schreibst du : Suchen
    Und fügst den Code ein.
    Wobei es natürlich noch idealer wäre , wenn du dir erstmal die Grundlagen anschaust & die lernst das du sie auch verwenden kannst.

    Mfg Kevin.

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Smoove“ ()

    hay Smoove,

    momentan stehe ich mit deiner ListBox und TextBox auf Kriegsfuss, weiß momentan nicht wie!
    Werde weiter kämpfen.

    gruß Norbert

    Sorry Smoove,

    habe den Wald vor lauter Bäumen nicht gesehen. ;) :thumbup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „little-nemo“ ()