it-swarm.it

Come faccio a creare una cartella in VB se non esiste?

Mi sono scritto una piccola applicazione di download in modo da poter facilmente prendere una serie di file dal mio server e metterli tutti su un nuovo PC con un'installazione pulita di Windows, senza andare effettivamente in rete. Sfortunatamente sto riscontrando problemi nella creazione della cartella in cui voglio inserirli e non sono sicuro di come procedere.

Voglio che il mio programma scarichi le app in program files\any name here\

Quindi, fondamentalmente, ho bisogno di una funzione che controlli se esiste una cartella e, in caso contrario, la crea.

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

In System.IO, esiste una classe chiamata Directory. Eseguire le seguenti operazioni:

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

Garantirà che la directory sia lì.

22
MagicKat

Poiché la domanda non specificava .NET, questo dovrebbe funzionare in VBScript o 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

Prova la classe System.IO.DirectoryInfo .

L'esempio da 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

Prova questo: Directory.Exists(TheFolderName) e Directory.CreateDirectory(TheFolderName)

(Potresti aver bisogno: Imports System.IO)

5
GEOCHET

VB.NET? System.IO.Directory.Exists (percorso stringa)

5
Chris Bilson

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

Inoltre, in Vista, probabilmente non puoi scrivere in C: direttamente se non lo esegui come amministratore, quindi potresti semplicemente ignorarlo e creare la directory che desideri in una sotto-directory di C: (che direi che è una buona pratica da seguire comunque - è incredibile quante persone scaricano schifo su C:

Spero che sia d'aiuto.

4
Mostlyharmless

(importa System.IO)

se Not Directory.Exists (Path) quindi 
 Directory.CreateDirectory (Path) 
 termina se
4
Wayne
If Not Directory.Exists(somePath) then
    Directory.CreateDirectory(somePath)
End If
3
PyongYang

Dovresti provare a utilizzare l'oggetto file system o FSO. Esistono molti metodi appartenenti a questo oggetto che verificano l'esistenza di cartelle e la creazione di nuove cartelle.

1
Dave

Basta fare questo:

        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

Ho dichiarato il percorso della cartella come una stringa (sPath) in modo che se lo si utilizza più volte, può essere modificato facilmente ma anche tramite il programma stesso.

Spero che sia d'aiuto!

-nfell2009

0
BaeFell

Vedo come funzionerebbe, quale sarebbe il processo per creare una finestra di dialogo che consenta all'utente di nominare la cartella e posizionarla dove vuoi.

Saluti

0
Andrew