web-dev-qa-db-ja.com

VBにフォルダーが存在しない場合、どのように作成しますか?

実際にネットに接続することなく、サーバーから一連のファイルを簡単に取得し、Windowsのクリーンインストールが行われた新しいPCにすべてのファイルを配置できるように、自分で小さなダウンロードアプリケーションを作成しました。残念ながら、私はそれらを入れたいフォルダを作成するのに問題があり、それをどうするかわからない。

プログラムでアプリをprogram files\any name here\にダウンロードしたい

したがって、基本的には、フォルダーが存在するかどうかを確認し、存在しない場合は作成する機能が必要です。

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

System.IOの下には、Directoryというクラスがあります。以下をせよ:

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

ディレクトリが存在することを確認します。

22
MagicKat

質問では.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
11
Rick

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
10
Guy Starbuck

これを試してください:Directory.Exists(TheFolderName)およびDirectory.CreateDirectory(TheFolderName)

(必要になる場合があります:Imports System.IO

5
GEOCHET

VB.NET? System.IO.Directory.Exists(文字列パス)

5
Chris Bilson

Directory.CreateDirectory()はそれを行う必要があります。 http://msdn.Microsoft.com/en-us/library/system.io.directory.createdirectory(VS.71).aspx

また、Vistaでは、管理者として実行しない限り、おそらくC:に直接書き込むことができないので、それをバイパスして、C:のサブディレクトリに目的のディレクトリを作成することができます(これはとにかく従うことをお勧めします-それは信じられないほど多くの人々がただCにがらくたを投げかける:

お役に立てば幸いです。

4
Mostlyharmless

(System.IOをインポート)

if Not Directory.Exists(Path)then 
 Directory.CreateDirectory(Path)
 end if
4
Wayne
If Not Directory.Exists(somePath) then
    Directory.CreateDirectory(somePath)
End If
3
PyongYang

ファイルシステムオブジェクトまたはFSOを使用してみてください。このオブジェクトには、フォルダが存在するかどうかを確認したり、新しいフォルダを作成したりする多くのメソッドがあります。

1
Dave

これを行うだけです:

        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

フォルダパスを文字列(sPath)として宣言したので、複数回使用する場合は簡単に変更できますが、プログラム自体で変更することもできます。

それが役に立てば幸い!

-nfell2009

0
BaeFell

これがどのように機能するのか、ユーザーがフォルダに名前を付けて目的の場所に配置できるダイアログボックスを作成するプロセスはどうなるのかがわかります。

乾杯

0
Andrew