2008-09-17 2 views
42

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

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

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

+4

Пожалуйста, обратите внимание, что вы можете работать и разрешения вопросов, пишущих в \ Program Files \, особенно под Vista. Вы должны рассмотреть другое место. – 2008-09-17 18:17:38

ответ

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

Не беспокойтесь, проверяя, существует ли он, он просто тратит время. CreateDirectory не будет генерировать исключение. Кроме того, кто-то может создать каталог между проверенным временем и временем его создания, делая проверку еще более бессмысленной. – 2008-10-04 05:45:29

+3

Да, но если папка существует, он может не захотеть скопировать приложение, поэтому проверка будет полезна в этой ситуации. – Seyren 2012-02-23 06:54:08

+2

Если в этом случае он должен проверить, существует ли конкретный файл, а не только каталог. – paz 2013-09-13 14:53:47

5

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

(Вы, возможно, потребуется: Imports System.IO)

5

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

+0

Вы были первым, кто разместил сообщения на несколько секунд. Вы должны получить несколько голосов. – 2015-08-08 12:15:13

9

Попробуйте 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 
19

Под System.IO, есть класс, называемый каталог. Выполните следующие действия:

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

Это гарантирует, что каталог есть.

1

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

4

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

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

Надежда, что помогает

4

(импорт System.IO)

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

Поскольку вопрос не указывал .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 
0

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

Приветствия

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

Просто сделай это:

 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 

Я объявил путь к папке в виде строки (Шпет), так что путь, если вы используете его несколько раз, это может быть легко изменена, но также он может быть изменен через саму программу.

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

-nfell2009

Смежные вопросы