it-swarm-eu.dev

Wie erstelle ich einen Ordner in VB wenn es nicht existiert?

Ich habe mir eine kleine Download-Anwendung geschrieben, mit der ich einfach eine Reihe von Dateien von meinem Server herunterladen und sie mit einer sauberen Windows-Installation auf einen neuen PC übertragen kann, ohne tatsächlich ins Internet zu gehen. Leider habe ich Probleme beim Erstellen des Ordners, in den ich sie einfügen möchte, und ich bin mir nicht sicher, wie ich damit umgehen soll.

Ich möchte, dass mein Programm die Apps auf program files\any name here\ Herunterlädt.

Im Grunde brauche ich eine Funktion, die prüft, ob ein Ordner existiert und ob er nicht erstellt wird.

50
John
If(Not System.IO.Directory.Exists(YourPath)) Then
    System.IO.Directory.CreateDirectory(YourPath)
End If
149

Unter System.IO gibt es eine Klasse namens Directory. Mach Folgendes:

If Not Directory.Exists(path) Then
    Directory.CreateDirectory(path)
End If

Dadurch wird sichergestellt, dass das Verzeichnis vorhanden ist.

22
MagicKat

Da in der Frage .NET nicht angegeben wurde, sollte dies in VBScript oder VB6 funktionieren.

Dim objFSO, strFolder
strFolder = "C:\Temp"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strFolder) Then
   objFSO.CreateFolder(strFolder)
End If
11
Rick

Probieren Sie die Klasse System.IO.DirectoryInfo aus.

Das Beispiel von MSDN:

Imports System
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class
10
Guy Starbuck

Versuchen Sie Folgendes: Directory.Exists(TheFolderName) und Directory.CreateDirectory(TheFolderName)

(Du benötigst vielleicht: Imports System.IO)

5
GEOCHET

VB.NET? System.IO.Directory.Exists (Zeichenfolgenpfad)

5
Chris Bilson

Directory.CreateDirectory () sollte es tun. http://msdn.Microsoft.com/en-us/library/system.io.directory.createdirectory (VS.71) .aspx

Außerdem können Sie in Vista wahrscheinlich nicht direkt in C: schreiben, es sei denn, Sie führen es als Administrator aus. Sie möchten dies möglicherweise einfach umgehen und das gewünschte Verzeichnis in einem Unterverzeichnis von C: erstellen (was ich sagen würde, ist Eine gute Praxis, die man sowieso befolgen sollte - es ist unglaublich, wie viele Leute einfach Mist auf C werfen:

Hoffentlich hilft das.

4
Mostlyharmless

(importiert System.IO)

wenn nicht Directory.Exists (Path), dann 
 Directory.CreateDirectory (Path) 
 end if
4
Wayne
If Not Directory.Exists(somePath) then
    Directory.CreateDirectory(somePath)
End If
3
PyongYang

Sie sollten versuchen, das Dateisystemobjekt oder FSO zu verwenden. Zu diesem Objekt gehören viele Methoden, die prüfen, ob Ordner vorhanden sind, und neue Ordner erstellen.

1
Dave

Mach einfach folgendes:

        Dim sPath As String = "Folder path here"
    If (My.Computer.FileSystem.DirectoryExists(sPath) = False) Then
        My.Computer.FileSystem.CreateDirectory(sPath + "/<Folder name>")
    Else
        'Something else happens, because the folder exists
    End If

Ich habe den Ordnerpfad als String (sPath) deklariert, so dass er, wenn Sie ihn mehrmals verwenden, leicht geändert werden kann, aber auch über das Programm selbst.

Ich hoffe es hilft!

-nfell2009

0
BaeFell

Ich verstehe, wie dies funktionieren würde, wie ein Dialogfeld erstellt werden würde, in dem der Benutzer den Ordner benennen und an der gewünschten Stelle ablegen kann.

Prost

0
Andrew