WMI技术介绍和应用——查询文件夹信息
? ? ? ??本文使用了《WMI技術(shù)介紹和應用——使用VC編寫一個半同步查詢WMI服務的類》中代碼做為基礎(chǔ)。本節(jié)只是列出了WQL語句,具體使用參看前面的例子。
? ? ? ? 本節(jié)主要介紹Win32_Directory類。通過該類我們將可以獲得部分常用的文件夾信息。在該類中,有屬性Name,該屬性標志文件的路徑。由于嘗試枚舉文件夾是非常耗時的。本文將介紹如何獲取指定文件夾的信息。(轉(zhuǎn)載請指明出于breaksoftware的csdn博客)
? ? ? ? 如何使用WMI獲取指定文件夾的訪問屬性?
SELECT AccessMask FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ? 該屬性若干屬性的'或'運算的結(jié)果。
| Value | Meaning |
|---|---|
| FILE_READ_DATA (file), FILE_LIST_DIRECTORY (directory) 0 (0x0) | Grants the right to read data from the file. For a directory, this value grants the right to list the contents of the directory. |
| FILE_WRITE_DATA (file), FILE_ADD_FILE (directory) 1 (0x1) | Grants the right to write data to the file. For a directory, this value grants the right to create a file in the directory. |
| FILE_APPEND_DATA (file), FILE_ADD_SUBDIRECTORY 4 (0x4) | Grants the right to append data to the file. For a directory, this value grants the right to create a subdirectory. |
| FILE_READ_EA 8 (0x8) | Grants the right to read extended attributes. |
| FILE_WRITE_EA 16 (0x10) | Grants the right to write extended attributes. |
| FILE_EXECUTE (file), FILE_TRAVERSE (directory) 32 (0x20) | Grants the right to execute a file. For a directory, the directory can be traversed. |
| FILE_DELETE_CHILD 64 (0x40) | Grants the right to delete a directory and all of the files it contains (its children), even if the files are read-only. |
| FILE_READ_ATTRIBUTES 128 (0x80) | Grants the right to read file attributes. |
| FILE_WRITE_ATTRIBUTES 256 (0x100) | Grants the right to change file attributes. |
| DELETE 65536 (0x10000) | Grants delete access. |
| READ_CONTROL 131072 (0x20000) | Grants read access to the security descriptor and owner. |
| WRITE_DAC 262144 (0x40000) | Grants write access to the discretionary ACL. |
| WRITE_OWNER 524288 (0x80000) | Assigns the write owner. |
| SYNCHRONIZE 1048576 (0x100000) | Synchronizes access and allows a process to wait for an object to enter the signaled state. |
| ACCESS_SYSTEM_SECURITY 18809343 (0x11F01FF) | Controls the ability to get or set the SACL in an object's security descriptor. |
? ? ? ? 可以見得,我們這個文件夾是ACCESS_SYSTEM_SECURITY屬性。此處要注意下該路徑的寫法,不能寫成C:\\Program Files,而要寫成C:\\\\Program Files。
? ? ? ? 如何使用WMI判斷指定文件夾是否有存檔屬性?
?
SELECT Archive FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ??
? ? ? ? 該屬性是DOS系統(tǒng)遺留下來的,但是我們依然可以在系統(tǒng)中設置它。
? ? ? ? 如何使用WMI判斷指定文件夾是否有可壓縮屬性?
SELECT Compressed FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ? 當我們磁盤空間不足時,系統(tǒng)將會對該磁盤中文件進行掃描
? ? ? ? 掃描結(jié)果中我們可以看到“”就是指標有壓縮屬性的文件夾。
? ? ? ? 我們可以在
? ? ? ? 中進行設置。
? ? ? ? 如何使用WMI判斷指定文件夾是否有加密屬性?
SELECT Encrypted FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ? 該屬性我們可以在
? ? ? ? 中設置。
? ? ? ? 該屬性還是很有意思的。如果這個文件夾被加上了這個屬性,那么本機的其他用戶將無法訪問該文件夾。如果我們把這個文件夾拷貝到另外一臺電腦上,除非在有證書的情況下,否則無法打開這個文件夾。一般,如果我們發(fā)現(xiàn)我們電腦上某個文件或者文件夾的名字是藍色的,那它往往就是被壓縮或者被加密的文件或文件夾。
? ? ? ? 如何使用WMI獲取指定文件夾的創(chuàng)建時間?
SELECT CreationDate FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ??
? ? ? ? 可以見得我們這個文件是2008年6月18日21時15分14秒創(chuàng)建的。該串最后+480,是標志我們是東八區(qū)(60*8)。
? ? ? ? 如何使用WMI獲取指定文件夾的最后訪問時間?
SELECT LastAccessed FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
?
? ? ? ? 該時間接近我在寫這邊文章的時間。
? ? ? ? 如何使用WMI獲取指定文件夾的最后修改時間?
SELECT LastModified FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
?
? ? ? ? 如何使用WMI判斷指定文件夾是否可讀?
SELECT Readable FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ? 為True代表可讀。
? ? ? ? 如何使用WMI判斷指定文件夾是否可寫?
SELECT Writeable FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ? 如何使用WMI判斷指定文件夾是否有隱藏屬性?
SELECT Hidden FROM Win32_Directory WHERE Name = 'c:\\\\Program Files'
? ? ? ?工程源碼見《WMI技術(shù)介紹和應用——WMI概述》結(jié)尾。
?
總結(jié)
以上是生活随笔為你收集整理的WMI技术介绍和应用——查询文件夹信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WMI技术介绍和应用——查询驱动信息
- 下一篇: WMI技术介绍和应用——查询磁盘分区和逻