65.9K
CodeProject 正在变化。 阅读更多。
Home

更改文件属性

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.67/5 (2投票s)

2010年2月22日

CPOL

1分钟阅读

viewsIcon

33967

downloadIcon

624

教你如何接受文件和文件夹并更改它们的属性

File_Attribute

引言

这是一个简单的 VB6 应用程序,可以更改文件或文件夹的属性,并教你如何接受拖放的文件以及命令行中的文件。本文的目的是让初学者了解如何创建 WndProc 函数并翻译消息 WM_DROPFILES

接受文件

首先,你必须向你的窗口发布一个标志,表明它接受文件,最简单的方法是使用 DragAcceptFiles(hWnd,fAccept)。然后,你的窗口过程将接收一个 WM_DROPFILES 消息,其中包含有关已拖放文件数量以及每个文件的完整路径的信息。

Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long,
    ByVal lParam As Long) As Long
On Error Resume Next
        If uMsg = WM_DROPFILES Then
            On Error Resume Next
            Dim All_Number_Of_Drag_Files As Integer
            Dim Drag_File_Path           As String
            Dim Drag_File_Size           As String
            Dim Numbers                  As Long
            Dim Res                      As String
            All_Number_Of_Drag_Files = DragQueryFile(wParam, -1, vbNullString, 0)
            
            If All_Number_Of_Drag_Files = 1 Then
                Drag_File_Size = DragQueryFile(wParam, 0, vbNullString, 0)
                Drag_File_Path = Space$(255)
                DragQueryFile wParam, 0, Drag_File_Path, (Drag_File_Size + 1)
                Form1.Text1.Text = Drag_File_Path
            Else
                Form2.Show
                Form2.List1.Clear
                For Numbers = 0 To (All_Number_Of_Drag_Files - 1)
                    Drag_File_Size = DragQueryFile(wParam, Numbers, vbNullString, 0)
                    Drag_File_Path = Space$(255)
                    DragQueryFile wParam, Numbers, Drag_File_Path, (Drag_File_Size + 1)
                    If Do_File(True, Drag_File_Path) = True Then Res = 
                        "True : " Else: Res = "False: "
                    Form2.List1.AddItem (Res & Drag_File_Path)
                Next
            End If
        End If
    WindowProc = CallWindowProc(PrevProc, hWnd, uMsg, wParam, lParam)
End Function

更改文件属性

文件属性是

  • ReadOnly:此标志表示应用程序无法编辑或删除文件或文件夹。
  • Hidden:此标志表示文件对你不可见,Windows 资源管理器将忽略它。
  • Archive:此标志表示文件已归档在硬盘上。
  • SystemFile:此标志表示该文件是系统文件,并且很重要。

我在这里使用了文件系统对象来编辑文件属性,你可以使用 API 代替,例如

Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
Public Const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = &H2000
Public Const FILE_ATTRIBUTE_OFFLINE = &H1000
Public Declare Function SetFileAttributes Lib "kernel32" Alias _
"SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
Public Function SetAttr(ByVal lpFile As String, ByVal Flags As Long) As Boolean
    SetAttr = SetFileAttributes(lpFile, Flags)
End Function 

你可以通过阅读 此处 了解更多关于文件属性的信息。

最后,感谢您阅读我的文章。

历史

  • 2010年2月22日:初始发布
© . All rights reserved.