zoukankan      html  css  js  c++  java
  • python 判断 windows 隐藏文件/系统文件

    linux 下隐藏文件是以句号 “.” 开头的文件,根据文件名即可判断是否为隐藏文件。

    win 下是以文件隐藏属性确定的,所以,只能通过微软的 API 获取隐藏属性来判断是否为隐藏文件。

    1. windows attrib 命令获取文件隐藏属性

    Syntax
          ATTRIB [ + attribute | - attribute ] [pathname] [/S [/D]]
    
    Key
         +    : Turn an attribute ON
         -    : Clear an attribute OFF
    
     pathname : Drive and/or filename e.g. C:*.txt
        /S    : Search the pathname including all subfolders.
        /D    : Process folders as well
    
       attributes: 
    
            R  Read-only (1)
            H  Hidden (2)
            A  Archive (32)
            S  System (4)
    
       extended attributes:
            E  Encrypted
    C Compressed (128:read-only)
    I Not content-indexed
    L Symbolic link/Junction (64:read-only)
    N Normal (0: cannot be used for file selection)
    O Offline
    P Sparse file
    T Temporary

    2. 隐藏属性值及其含义

    Constants - the following attribute values are returned by the GetFileAttributes function:

    FILE_ATTRIBUTE_READONLY = 1 (0x1)
    FILE_ATTRIBUTE_HIDDEN = 2 (0x2)
    FILE_ATTRIBUTE_SYSTEM = 4 (0x4)
    FILE_ATTRIBUTE_DIRECTORY = 16 (0x10)
    FILE_ATTRIBUTE_ARCHIVE = 32 (0x20)
    FILE_ATTRIBUTE_NORMAL = 128 (0x80)
    FILE_ATTRIBUTE_TEMPORARY = 256 (0x100)
    FILE_ATTRIBUTE_SPARSE_FILE = 512 (0x200)
    FILE_ATTRIBUTE_REPARSE_POINT = 1024 (0x400)
    FILE_ATTRIBUTE_COMPRESSED = 2048 (0x800)
    FILE_ATTRIBUTE_OFFLINE = 4096 (0x1000)
    FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 (0x2000)
    FILE_ATTRIBUTE_ENCRYPTED = 16384 (0x4000)

    For example, a file attribute of 0x120 indicates the Temporary + Archive attributes are set (0x100 + 0x20 = 0x120.)

    3. python 通过 win32api 获取文件隐藏属性

    python 官网对 win32API 的简单说明 https://www.python.org/download/windows/

    下载地址 http://sourceforge.net/projects/pywin32/

    import win32file
    ·
    filenames = [r'D:	est',
                 r'D:	est$RECYCLE.BIN',
                 r'D:	est.file_test.py.swp',
                 r'D:	estfile_test.py']
    
    for filename in filenames:
        print '%4d, %s' %(win32file.GetFileAttributesW(filename), filename)

    运行结果:

    4. 与运算(&)更直观判断隐藏文件

    示例代码如下,& 运算的结果与隐藏属性值相对应,可以更直观的判断文件类型。

    import win32file
    import win32con
    
    filenames = [r'D:	est',
                 r'D:	est$RECYCLE.BIN',
                 r'D:	est.file_test.py.swp',
                 r'D:	estfile_test.py']
    
    for filename in filenames:
        file_flag = win32file.GetFileAttributesW(filename)
        is_hiden = file_flag & win32con.FILE_ATTRIBUTE_HIDDEN
        is_system = file_flag & win32con.FILE_ATTRIBUTE_SYSTEM
        print '%4d, %s, %s, %s' %(file_flag, is_hiden, is_system, filename)

  • 相关阅读:
    几个比较好的IT站和开发库官网
    Win7下Qt5.2中使用OpenGL的glu函数库无法使用的解决方案
    QT5.2 Assistant-设置应用程序图标
    linux下文件编码格式转换方法(gb18030/utf-8)
    QT-进制转换计算器
    QT-图标设置
    QT-make: *** No rule to make target
    QT的exe文件打开显示,无法定位程序***输入点于动态链接库****
    QT工程文件上传Github仓库
    Eclipse中文乱码
  • 原文地址:https://www.cnblogs.com/misspy/p/3615007.html
Copyright © 2011-2022 走看看