Zugriff auf Ordner im Projekt

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von dusti.

    Zugriff auf Ordner im Projekt

    Ich steh grad total aufm Schlauch, ich weiss nicht wies geht und find weder beo Google noch hier was.
    Ich hab zu meinem Projekt einen Ordner hinzugefügt. Jetzt will ich alle Dateien darin auflisten. Aber wie, bzw woher bekomme ich den Pfad zu dem Ordner? Der Ordner heisst bei mir "Felder"

    VB.NET-Quellcode

    1. Dim files() As String = System.IO.Directory.GetFiles("Felder")

    Das funktioniert nicht. Woher bekomme ich den Pfad, sodass er immer stimmt, auch wenn ichs auf einem anderen Computer ausführe, sowohl in der Debug- als auch in der Release-Version?
    Mfg dusti
    ich könnt mir 2 möglichkeiten vorstellen:

    1.: du musst \Felder eingeben,
    2.: du musst .\Felder eingeben.

    Hoffe es hilft!
    | Keine Fragen per PN oder Skype.
    C:\Users\Benutzername\Documents\Visual Studio 2005\Projects\6Bauernspiel\6Bauernspiel\Felder
    Aber mit diesem Pfad kann ich nicht arbeiten, da der sich ja ändern kann, d.H. einfach zwei Ordner nach oben gehen geht nicht.
    Mfg dusti
    also, ich hab die lösung, wenn der ordner immer im benutzerverzeichnis ist:

    VB.NET-Quellcode

    1. Imports System.Environment ' gib das vor dem Public Class Form1 ein

    dann:

    VB.NET-Quellcode

    1. Shared usrordner as String

    dann in einer Sub:

    VB.NET-Quellcode

    1. usrordner = GetEnvironmentVariable("homepath")


    das funzt jetzt so: die Umgebungsvariable hat den String/Pfad:
    C:\Users\Benutzername\

    um an den Pfad zu kommen:

    VB.NET-Quellcode

    1. dim GanzerPfad as String
    2. GanzerPfad = usrordner + "\Documents\Visual Studio 2005\Projects\6Bauernspiel\6Bauernspiel\"

    dann machste deinen code rein:
    [vb]Dim files() As String = System.IO.Directory.GetFiles(GanzerPfad + "Felder")
    | Keine Fragen per PN oder Skype.
    Hi,

    also irgendwie ist das verwirrend... Wenn ich das doch richtig verstanden habe, soll der Ordner "Felder" auch später für das Release auch vorhanden sein oder nicht ?!

    Wieso erstellst Du den Ordner dann nicht unter bin\debug ??? Dort wird eben für die Zeit der Entwicklung gearbeitet.

    Im Deinen fertigen Programm würde ich mit :

    VB.NET-Quellcode

    1. Public apppath As String = System.Windows.Forms.Application.StartupPath


    den ApplicationPath auslesen und dann einfach mit apppath + "\Felder" Deinen gewünschten Pfad festlegen.

    Oder habe ich das jetzt falsch verstanden ???

    Viele Grüße
    Ich hab im Projektmappen-Explorer, also da, wo man auch z.B. Grafiken einfügt, einen neuen Ordner erstellt. Solche Sachen kommen ja grade nicht in den Ordner Debug, dort kommen nur Sachen rein, die die IDe dorthin macht.
    @Serials: Die Lösung ist zwar gut, nur ist mein Ordner nicht im Benutzerverzeichnis. Ausserdem, wie ich schon geschrieben habe, muss der Pfad auf verschiedenen Pcs funktionieren, was bei dir nicht der Fall ist, da, wenn das Programm auf einem anderen PC installiert wird, es keinen Pfad "\Documents\Visual Studio 2005\Projects\6Bauernspiel\6Bauernspiel\" gibt.
    Mfg dusti

    dusti schrieb:

    Ich hab im Projektmappen-Explorer, also da, wo man auch z.B. Grafiken einfügt, einen neuen Ordner erstellt. Solche Sachen kommen ja grade nicht in den Ordner Debug, dort kommen nur Sachen rein, die die IDe dorthin macht.
    @Serials: Die Lösung ist zwar gut, nur ist mein Ordner nicht im Benutzerverzeichnis. Ausserdem, wie ich schon geschrieben habe, muss der Pfad auf verschiedenen Pcs funktionieren, was bei dir nicht der Fall ist, da, wenn das Programm auf einem anderen PC installiert wird, es keinen Pfad "\Documents\Visual Studio 2005\Projects\6Bauernspiel\6Bauernspiel\" gibt.
    Hi,

    also nochmal ganz langsam.

    Die Sache soll doch auf verschiedenen PC's funktionieren.

    Aaaalso :
    der Benutzer installiert doch Dein Programm Bauernspiel z.B. in :
    C:\Programme\Bauernspiel
    dort wird allerwahrscheinlichkeit nach auch die fertige .exe liegen, richtig ?
    der Unterordner wird wohl dann so aussehen :
    C:\Programme\Bauernspiel\Felder
    oder irre ich mich ?

    Viele Grüße
    Richtig :D Das geht aber auch einfacher als mit StartupPath, ich weiss es, da ich das schonmal gemacht habe, nur leider ist das Projekt, in dem das war, nicht mehr auf meinem PC.
    Mfg dusti
    Hi!

    Wenn du Dateien in den Projekt-Baum ziehst (nicht als Resource), kannst du die Dateien dort anwählen und "In den Ausgabeordner kopieren" o.ä. aktivieren, dann werden alle diese Projektdateien beim ausführen in den gleichen Ordner wie die exe kopiert. Somit kannst du dann einfach den StartupPath sowohl für's Testen alsauch für die Weitergabe verwenden :)


    so long..
    Andy
    ~
    Hi!

    Bin mir nicht sicher, ist ewig her, dass ich vb2005 offen hatte :D
    Wenn du bei jeder Datei die Option wählst, sollte die Ordnerstruktur im Ausgabeordner aber auch erstellt werden.

    Beispiel:

    Quellcode

    1. PROJEKTBAUM:
    2. Projekt XYZ
    3. -> Felder
    4. -> Feld1.txt
    5. -> Feld2.txt
    6. -> Feld3.txt


    jetzt setzt du die Option z.B. bei Feld1.txt und Feld3.txt, dann werden folgende Dateien erstellt / kopiert:

    Quellcode

    1. Ausgabeverzeichnis\Felder\Feld1.txt
    2. Ausgabeverzeichnis\Felder\Feld3.txt


    Teste mal, ob das eh so stimmt, ich hab das aber noch von irgendwas mit DirectX so in Erinnerung :)


    so long..
    Andy
    ~
    also ich frage mich, warum das dir so wichtig ist. Wenn du den Ordner brauchst, dann kopier ihn doch manuell in dein Ausgabeverzeichnis, mach ich auch immer so. Der wird dann ja auch nicht gelöscht, wenn du das Projekt neu erstellst.
    Jep, falls es nicht anders geht, werd ichs so machen. Aber mit so manuellem Eingriff in die Strucktut oder Code, der eigenltich von der IDE gemanaged wird, kann man ganz schön viel versauen, zum Teil sogar das gesamte Projekt unbrauchbar machen, ist mir schon mal passiert. Besonders dumm ists dann, wenn man die Option "Bei Kompilieren Speichern" oder so aktiviert hat.
    Mfg dusti