Как мне создать папку в VB, если она не существует? - PullRequest
48 голосов
/ 17 сентября 2008

Я написал небольшое загружаемое приложение для того, чтобы я мог легко получить набор файлов со своего сервера и поместить их все на новый компьютер с чистой установкой Windows, фактически не заходя в сеть. К сожалению, у меня проблемы с созданием папки, в которую я хочу их поместить, и я не уверен, как это сделать.

Я хочу, чтобы моя программа загружала приложения в program files\any name here\

Так что в основном мне нужна функция, которая проверяет, существует ли папка, и если она не создает, то создает ее.

Ответы [ 12 ]

147 голосов
/ 17 сентября 2008
If(Not System.IO.Directory.Exists(YourPath)) Then
    System.IO.Directory.CreateDirectory(YourPath)
End If
20 голосов
/ 17 сентября 2008

В System.IO есть класс, который называется Directory. Сделайте следующее:

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

Это обеспечит наличие каталога.

11 голосов
/ 17 сентября 2008

Поскольку в вопросе не указан .NET, это должно работать в VBScript или VB6.

Dim objFSO, strFolder
strFolder = "C:\Temp"
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strFolder) Then
   objFSO.CreateFolder(strFolder)
End If
10 голосов
/ 17 сентября 2008

Попробуйте класс System.IO.DirectoryInfo .

Образец из 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
5 голосов
/ 17 сентября 2008

VB.NET? System.IO.Directory.Exists (строковый путь)

5 голосов
/ 17 сентября 2008

Попробуйте это: Directory.Exists(TheFolderName) и Directory.CreateDirectory(TheFolderName)

(Вам может понадобиться: Imports System.IO)

4 голосов
/ 17 сентября 2008

(импорт System.IO)

if Not Directory.Exists(Path) then
  Directory.CreateDirectory(Path)
end if
4 голосов
/ 17 сентября 2008

Directory.CreateDirectory () должен это сделать. http://msdn.microsoft.com/en-us/library/system.io.directory.createdirectory(VS.71).aspx

Кроме того, в Vista вы, вероятно, не сможете писать в C: напрямую, если вы не запускаете его как администратор, поэтому вы можете просто захотеть обойти это и создать нужный каталог в подкаталоге C: (который я ' я бы сказал, что это хорошая практика, которой нужно следовать в любом случае - невероятно, сколько людей просто бросают дерьмо в C:

Надеюсь, это поможет.

3 голосов
/ 07 августа 2009
If Not Directory.Exists(somePath) then
    Directory.CreateDirectory(somePath)
End If
1 голос
/ 17 сентября 2008

Вы должны попробовать использовать объект файловой системы или FSO. Есть много методов, принадлежащих этому объекту, которые проверяют, существуют ли папки, а также создают новые папки.

...