How do I create a folder in VB if it doesn't exist?

vb.netInstallationDirectory

vb.net Problem Overview


I wrote myself a little downloading application so that I could easily grab a set of files from my server and put them all onto a new pc with a clean install of Windows, without actually going on the net. Unfortunately I'm having problems creating the folder I want to put them in and am unsure how to go about it.

I want my program to download the apps to program files\any name here\

So basically I need a function that checks if a folder exists, and if it doesn't it creates it.

vb.net Solutions


Solution 1 - vb.net

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

Solution 2 - vb.net

Under System.IO, there is a class called Directory. Do the following:

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

It will ensure that the directory is there.

Solution 3 - vb.net

Try the System.IO.DirectoryInfo class.

The sample from 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

Solution 4 - vb.net

Since the question didn't specify .NET, this should work in VBScript or VB6.

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

Solution 5 - vb.net

Try this: Directory.Exists(TheFolderName) and Directory.CreateDirectory(TheFolderName)

(You may need: Imports System.IO)

Solution 6 - vb.net

VB.NET? System.IO.Directory.Exists(string path)

Solution 7 - vb.net

Directory.CreateDirectory() should do it. http://msdn.microsoft.com/en-us/library/system.io.directory.createdirectory(VS.71).aspx

Also, in Vista, you probably cannot write into C: directly unless you run it as an admin, so you might just want to bypass that and create the dir you want in a sub-dir of C: (which i'd say is a good practice to be followed anyways. -- its unbelievable how many people just dump crap onto C:

Hope that helps.

Solution 8 - vb.net

(imports System.IO)

if Not Directory.Exists(Path) then
Directory.CreateDirectory(Path)
end if

Solution 9 - vb.net

If Not Directory.Exists(somePath) then
    Directory.CreateDirectory(somePath)
End If

Solution 10 - vb.net

You should try using the File System Object or FSO. There are many methods belonging to this object that check if folders exist as well as creating new folders.

Solution 11 - vb.net

I see how this would work, what would be the process to create a dialog box that allows the user name the folder and place it where you want to.

Cheers

Solution 12 - vb.net

Just do this:

        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

I declared the folder path as a String (sPath) so that way if you do use it multiple times it can be changed easily but also it can be changed through the program itself.

Hope it helps!

-nfell2009

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJohnView Question on Stackoverflow
Solution 1 - vb.netQuintin RobinsonView Answer on Stackoverflow
Solution 2 - vb.netMagicKatView Answer on Stackoverflow
Solution 3 - vb.netGuy StarbuckView Answer on Stackoverflow
Solution 4 - vb.netRickView Answer on Stackoverflow
Solution 5 - vb.netGEOCHETView Answer on Stackoverflow
Solution 6 - vb.netChris BilsonView Answer on Stackoverflow
Solution 7 - vb.netMostlyharmlessView Answer on Stackoverflow
Solution 8 - vb.netWayneView Answer on Stackoverflow
Solution 9 - vb.netPyongYangView Answer on Stackoverflow
Solution 10 - vb.netDaveView Answer on Stackoverflow
Solution 11 - vb.netAndrewView Answer on Stackoverflow
Solution 12 - vb.netBaeFellView Answer on Stackoverflow