更改文件属性






2.67/5 (2投票s)
教你如何接受文件和文件夹并更改它们的属性

引言
这是一个简单的 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日:初始发布