ディレクトリの作成と削除 <TOP>
CreateDirectory ディレクトリの新規作成
CreateDirectoryEx ディレクトリの新規作成
RemoveDirectory ディレクトリを削除
SetFileAttributes ファイルの属性を変更
「隠しファイル属性」は、青色で表示させています。
'================================================================ '= ディレクトリの作成と削除 '= (CreateDirectory.bas) '================================================================ #include "Windows.bi" Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type ' ディレクトリの新規作成 Declare Function Api_CreateDirectory& Lib "Kernel32" Alias "CreateDirectoryA" (ByVal lpPathName$, lpSecurityAttributes As SECURITY_ATTRIBUTES) ' ディレクトリの新規作成 Declare Function Api_CreateDirectoryEx& Lib "Kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory$, ByVal lpNewDirectory$, lpSecurityAttributes As Any) ' ディレクトリを削除 Declare Function Api_RemoveDirectory& Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName$) ' ファイルの属性を変更 Declare Function Api_SetFileAttributes& Lib "Kernel32" Alias "SetFileAttributesA" (ByVal lpFileName$, ByVal dwFileAttributes&) #define FILE_ATTRIBUTE_ARCHIVE &H20 'アーカイブ属性を示す定数 #define FILE_ATTRIBUTE_HIDDEN &H2 '隠しファイル属性 #define FILE_ATTRIBUTE_NORMAL &H80 '他のファイル属性を持たない #define FILE_ATTRIBUTE_READONLY &H1 '読み込み専用属性 #define FILE_ATTRIBUTE_SYSTEM &H4 'システムファイル属性 Var Shared Button1 As Object Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var sa As SECURITY_ATTRIBUTES Var Ret As Long Ret = Api_CreateDirectory("C:\TempPath1", sa) If Ret <> 0 Then A% = MessageBox("", "「C:\TempPath1」を作成しました!", 0, 2) Ret = Api_SetFileAttributes("C:\TempPath1", FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_ARCHIVE) If Ret <> 0 Then A% = MessageBox("", "「C:\TempPath1」は、隠しファイル属性に設定しました!", 0, 2) End If End If sa.nLength = Len(sa) sa.lpSecurityDescriptor = 0 sa.bInheritHandle = 1 Ret = Api_CreateDirectoryEx("C:\TempPath1", "C:\TempPath2", sa) If Ret <> 0 Then A% = MessageBox("", "新ディレクトリ「C:\TempPath2」を作成しました!", 0, 2) If A% = 0 Then Ret = Api_RemoveDirectory("C:\TempPath1") Ret = Api_RemoveDirectory("C:\TempPath2") A% = MessageBox("", "「TempPath1・TempPath2」は、削除されました!", 0, 2) End If End If End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End