ファイル属性の取得と設定 <TOP>
指定したファイルの属性を取得・設定を実行し確認します。
GetFileAttributes 属性を取得するAPI
SetFileAttributes 属性を設定するAPI
あらかじめ 同じフォルダに適当なファイル(例:TEST.TXT)を作成しておきます。起動するとファイ名と現在の属性を表示します。
コンボボックス内の目的行を選択しクリックするとその属性が変更され、変更された属性が表示されます。
APIでなければならないわけではありません。
SETATTR - ファイルの属性を設定と解除を行います。
SETATTR ファイルディスクリプタ, 属性
ファイルディスクリプタ → ファイル名
属性 → 文字列で設定
"+R" 読取専用属性を設定
"+A" アーカイブ属性を設定
"-R" 読取専用属性を解除
"-A" アーカイブ属性を解除
例:
#include "File.bi"
SETATTR "C:\Temp\test.txt", "+R"
'================================================================ '= ファイルの属性取得と変更の確認 '= (GetFileAttributes.bas) '================================================================ #include "Windows.bi" ' 指定されたファイルまたはディレクトリの属性を取得 Declare Function Api_GetFileAttributes& Lib "Kernel32" Alias "GetFileAttributesA" (ByVal lpFileName$) ' ファイルの属性を変更 Declare Function Api_SetFileAttributes& Lib "Kernel32" Alias "SetFileAttributesA" (ByVal lpFileName$, ByVal dwFileAttributes&) #define FILE_ATTRIBUTE_ARCHIVE &H20 'アーカイブ属性 #define FILE_ATTRIBUTE_DIRECTORY &H10 'ディレクトリ属性 #define FILE_ATTRIBUTE_HIDDEN &H2 '隠しファイル属性 #define FILE_ATTRIBUTE_NORMAL &H80 'ファイル属性を持たない #define FILE_ATTRIBUTE_READONLY &H1 '読み込み専用属性 #define FILE_ATTRIBUTE_SYSTEM &H4 'システムファイル属性 #define FILE_ATTRIBUTE_COMPRETSED &H800 '圧縮属性を示す定数 #define FILE_ATTRIBUTE_TEMPORARY &H100 '一時ファイル属性を示す定数 Var Shared Text1 As Object Var Shared Text2 As Object Var Shared Combo1 As Object Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Text2.Attach GetDlgItem("Text2") : Text2.SetFontSize 14 Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14 Var Shared nFile As String Var Shared WK$(5,1) As String '================================================================ '= '================================================================ Declare Sub Attr_Dsp edecl () Sub Attr_Dsp() Var Ret As Long Text1.SetWindowtext nFile Ret = Api_GetFileAttributes(nFile) Select Case Ret Case FILE_ATTRIBUTE_ARCHIVE Text2.SetWindowtext "アーカイブ属性" Case FILE_ATTRIBUTE_DIRECTORY Text2.SetWindowtext "ディレクトリ属性" Case FILE_ATTRIBUTE_HIDDEN Text2.SetWindowtext "隠しファイル属性" Case FILE_ATTRIBUTE_NORMAL Text2.SetWindowtext "ファイル属性持たない" Case FILE_ATTRIBUTE_READONLY Text2.SetWindowtext "読み込み専用属性" Case FILE_ATTRIBUTE_SYSTEM Text2.SetWindowtext "システムファイル属性" End Select End Sub '================================================================ '= '================================================================ declare sub MainForm_Start edecl () sub MainForm_Start() nFile = "test.txt" For i = 0 To 5 For j = 0 To 1 Read WK$(i, j) Next Combo1.AddString WK$(i, 0) Next data FILE_ATTRIBUTE_ARCHIVE , "&h20" data FILE_ATTRIBUTE_DIRECTORY, "&h10" data FILE_ATTRIBUTE_HIDDEN , "&h2" data FILE_ATTRIBUTE_NORMAL , "&h80" data FILE_ATTRIBUTE_READONLY , "&h1" data FILE_ATTRIBUTE_SYSTEM , "&h4" Attr_Dsp End Sub '================================================================ '= '================================================================ Declare Sub Combo1_Change edecl () Sub Combo1_Change() Var NO As Long Var Ret As Long NO = Combo1.GetCursel Ret = Api_SetFileAttributes(nFile, Val(WK$(NO, 1))) Attr_Dsp End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End