¿Cómo creo una carpeta en VB si no existe?
Pregunta
Escribí una pequeña aplicación de descarga para poder tomar fácilmente un conjunto de archivos de mi servidor y colocarlos todos en una nueva PC con una instalación limpia de Windows, sin tener que conectarme a la red.Lamentablemente, tengo problemas para crear la carpeta en la que quiero colocarlos y no estoy seguro de cómo hacerlo.
Quiero que mi programa descargue las aplicaciones program files\any name here\
Básicamente, necesito una función que verifique si existe una carpeta y, si no es así, la crea.
Solución
If(Not System.IO.Directory.Exists(YourPath)) Then
System.IO.Directory.CreateDirectory(YourPath)
End If
Otros consejos
En System.IO, hay una clase llamada Directorio.Haz lo siguiente:
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
Se asegurará de que el directorio esté allí.
Como la pregunta no especificaba .NET, esto debería funcionar en 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
Prueba el System.IO.DirectoryInfo clase.
La muestra de 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
¿VB.NET?System.IO.Directory.Exists (ruta de cadena)
Prueba esto: Directory.Exists(TheFolderName)
y Directory.CreateDirectory(TheFolderName)
(Tu puedes necesitar: Imports System.IO
)
Directory.CreateDirectory() debería hacerlo.http://msdn.microsoft.com/en-us/library/system.io.directory.createdirectory(VS.71).aspx
Además, en Vista, probablemente no puedas escribir en C:directamente a menos que lo ejecute como administrador, por lo que es posible que desee omitirlo y crear el directorio que desea en un subdirectorio de C:(Lo cual yo diría que es una buena práctica a seguir de todos modos.-- es increíble cuánta gente simplemente tira basura en C:
Espero que ayude.
(importa System.IO)
if Not Directory.Exists(Path) then Directory.CreateDirectory(Path) end if
If Not Directory.Exists(somePath) then
Directory.CreateDirectory(somePath)
End If
Debería intentar utilizar el objeto del sistema de archivos o FSO.Hay muchos métodos pertenecientes a este objeto que verifican si existen carpetas y también crean carpetas nuevas.
Veo cómo funcionaría esto, cuál sería el proceso para crear un cuadro de diálogo que le permita al usuario nombrar la carpeta y colocarla donde desee.
Salud
Sólo haz esto:
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
Declaré la ruta de la carpeta como una Cadena (sPath) de modo que, si la usa varias veces, pueda cambiarse fácilmente pero también puede cambiarse a través del programa mismo.
¡Espero eso ayude!
-nfell2009