ファイルの属性を変更する
                                                        玄関へお回り下さい。
ファイルの属性を得る          (096)
      
Private Sub Command1_Click()
'属性の取得
  Dim MyAttr As Integer
  MyAttr = GetAttr("C:\WINDOWS\花見.bmp")
  Label1.Caption = "属性は: " & MyAttr & " です"
End Sub


  複数の属性の場合合計数値となる (読み出し専用の隠しファイルは3が入る)

    vbNormal    0   通常ファイル
    vbReadOnly  1   読み取り専用ファイル
    vbHidden    2   隠しファイル
    vbSystem    4   システムファイル
    vbDirectory 16  フォルダー
    vbArchive   32  アーカイブ

ファイルの属性を設定する          (096)
    クリック毎に属性を変更

Private Sub Command2_Click()
'属性の設定
  Dim MyAttr As Integer
  MyAttr = GetAttr("C:\WINDOWS\花見.bmp")
  'アーカイブファイルなら
  If MyAttr = vbArchive Then
    '読み出し専用ファイルに変更
    SetAttr "C:\WINDOWS\花見.bmp", vbReadOnly
  Else
    'アーカイブ に変更(元の状態)
    SetAttr "C:\WINDOWS\花見.bmp", vbArchive
  End If
  MyAttr = GetAttr("C:\WINDOWS\花見.bmp")
  Label1.Caption = "属性を: " & MyAttr & " に設定しました"
End Sub


フォルダー内の全ファイルの属性を取得

Private Sub Command3_Click()
'全フォルダーとファイルを列挙("." と ".." を含む)
  Dim myFileName As String
  myFileName = Dir$("c:\windows\", vbDirectory Or vbHidden Or vbSystem)
  List1.Visible = False
  List1.Clear
  Do While myFileName <> ""
    'ファイル名と属性を表示
    List1.AddItem StrCut(myFileName, 35) & "  " & _
              GetAttr("c:\windows\" & myFileName)
    myFileName = Dir$  '次のファイル名を読込
  Loop
  List1.Visible = True
End Sub


勿論 GetAttr を SetAttr に変更すれば変更すれば全ファイルの属性が変更できます。

よけいなお世話
     ファイルの属性を変更する場合、そのファイルがOpen中や使用中には変更ができません。
CD-Rからコピーしたデータは読み出し専用属性になっているので、書き込みする場合属性の変更が必要です。




2002/05/19