it-swarm-pt.tech

Como crio uma pasta em VB se ela não existe?

Eu escrevi para mim mesmo um pequeno aplicativo de download para que eu pudesse facilmente pegar um conjunto de arquivos do meu servidor e colocá-los em um novo PC com uma instalação limpa do Windows, sem realmente entrar na rede. Infelizmente, estou tendo problemas para criar a pasta em que quero colocá-los e não tenho certeza de como fazê-lo.

Quero que meu programa faça o download dos aplicativos para program files\any name here\

Então, basicamente, preciso de uma função que verifique se existe uma pasta e, se não existir, a cria.

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

Em System.IO, há uma classe chamada Diretório. Faça o seguinte:

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

Isso garantirá que o diretório esteja lá.

22
MagicKat

Como a pergunta não especificou o .NET, isso deve funcionar no VBScript ou no VB6.

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

Experimente a classe System.IO.DirectoryInfo .

A amostra do 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

Tente o seguinte: Directory.Exists(TheFolderName) e Directory.CreateDirectory(TheFolderName)

(Você pode precisar de: Imports System.IO)

5
GEOCHET

VB.NET? System.IO.Directory.Exists (caminho da string)

5
Chris Bilson

Directory.CreateDirectory () deve fazê-lo. http://msdn.Microsoft.com/en-us/library/system.io.directory.createdirectory (VS.71) .aspx

Além disso, no Vista, você provavelmente não pode gravar em C: diretamente, a menos que o execute como administrador, portanto, você pode simplesmente ignorar isso e criar o diretório que deseja em um sub-diretório de C: (o que eu diria que é uma boa prática a ser seguida de qualquer maneira - é inacreditável quantas pessoas simplesmente jogam lixo em C:

Espero que ajude.

4
Mostlyharmless

(importa System.IO)

if Not Directory.Exists (Path), então 
 Directory.CreateDirectory (Path) 
 termina se
4
Wayne
If Not Directory.Exists(somePath) then
    Directory.CreateDirectory(somePath)
End If
3
PyongYang

Você deve tentar usar o objeto do sistema de arquivos ou o FSO. Existem muitos métodos pertencentes a esse objeto que verificam se existem pastas, além de criar novas pastas.

1
Dave

Apenas faça o seguinte:

        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

Declarei o caminho da pasta como uma String (sPath), dessa forma, se você a usar várias vezes, poderá ser alterada facilmente, mas também poderá ser alterada pelo próprio programa.

Espero que ajude!

-nfell2009

0
BaeFell

Vejo como isso funcionaria, qual seria o processo para criar uma caixa de diálogo que permita ao usuário nomear a pasta e colocá-la onde quiser.

Felicidades

0
Andrew