既存の空のディレクトリを削除          <TOP>


既存の空のディレクトリを削除します。

CreateDirectoryEx ディレクトリの新規作成

CreateDirectory ディレクトリの新規作成

RemoveDirectory 既存の空のディレクトリを削除

 

左:C:\に_ABというディレクトリを作成します。    右:RemoveDirectoryを実行(空なので削除成功)

CreateDirectoryExの場合、第一引数の属性を引き継ぐため、該当するフォルダが存在しない場合は新規フォルダは作成されません。

 

下:_ABにファイルが存在する場合

 

'================================================================
'= 既存の空のディレクトリを削除
'=    (RemoveDirectory.bas)
'================================================================
#include "Windows.bi"

' ディレクトリの新規作成
Declare Function Api_CreateDirectoryEx& Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory$, ByVal lpNewDirectory$, lpSecurityAttributes As Any)

' ディレクトリの新規作成
'Declare Function Api_CreateDirectory& Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName$, lpSecurityAttributes As SECURITY_ATTRIBUTES)

' 既存の空のディレクトリを削除
Declare Function Api_RemoveDirectory& Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName$)

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Ret As Long

    '新しいディレクトリを作成
    Ret = Api_CreateDirectoryEx("C:\_FB", "C:\_AB", ByVal 0)
'   Ret = Api_CreateDirectory("C:\_AB", ByVal 0)

    If Ret <> 0 Then
        A% = MessageBox("", "「C\_AB」という空のディレクトリを作成しました", 0, 2)
    Else
        A% = MessageBox("", "「C\_AB」というディレクトリは作成できません!", 0, 2)
    End If
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Ret As Long

    'ディレクトリを削除
    Ret = Api_RemoveDirectory("C:\_AB")

    If Ret = 1 Then
        A% = MessageBox("", "「C:\_AB」を削除しました", 0, 2)
    Else
        A% = MessageBox("", "「C:\_AB」を削除できません", 0, 2)
    End If
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End