zoukankan      html  css  js  c++  java
  • windows API编写的提取文件属性的程序

    用VC++6.0的编译环境,建的是win32 console application

    #include <stdafx.h>
    #include <string.h>
    #include <windows.h>

    DWORD ShowFileTime(PFILETIME lptime)
    {
    //文件时间结构
    FILETIME ftLocal;
    //系统时间结构
    SYSTEMTIME st;
    //调整为系统所在时区的时间
    FileTimeToLocalFileTime(lptime,&ftLocal);
    //将文件时间转换为SYSTEMTIME格式,便于显示
    FileTimeToSystemTime(&ftLocal,&st);
    //显示时间信息字符串
    printf("%4d年%#02d月%#02d日,%#02d:%#02d:%#02d\n",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
    return 0;
    }

    DWORD ShowFileSize(DWORD dwFileSizeHigh,DWORD dwFileSizeLow)
    {
    ULONGLONG liFileSize;
    liFileSize = dwFileSizeHigh;
    //移动到32位
    liFileSize <<= sizeof(DWORD)*8;
    liFileSize += dwFileSizeLow;
    printf("w文件大小:\t%I64u 字节\n",liFileSize);
    return 0;
    }

    DWORD ShowFileAttrInfo(DWORD dwAttribute)
    {
    //依次判断属性,并显示
    printf("文件属性:\t");
    if(dwAttribute&FILE_ATTRIBUTE_ARCHIVE)
    printf("<ARCHIVE>");
    if(dwAttribute&FILE_ATTRIBUTE_COMPRESSED)
    printf("<压缩>");
    if(dwAttribute&FILE_ATTRIBUTE_DIRECTORY)
    printf("<目录>");
    if(dwAttribute&FILE_ATTRIBUTE_ENCRYPTED)
    printf("<加密>");
    if(dwAttribute&FILE_ATTRIBUTE_HIDDEN)
    printf("<隐藏>");
    if(dwAttribute&FILE_ATTRIBUTE_NORMAL)
    printf("<NORMAL>");
    if(dwAttribute&FILE_ATTRIBUTE_OFFLINE)
    printf("<OFFLINE>");
    if(dwAttribute&FILE_ATTRIBUTE_READONLY)
    printf("<只读>");
    if(dwAttribute&FILE_ATTRIBUTE_SPARSE_FILE)
    printf("<SPARSE>");
    if(dwAttribute&FILE_ATTRIBUTE_SYSTEM)
    printf("<系统文件>");
    if(dwAttribute&FILE_ATTRIBUTE_TEMPORARY)
    printf("<临时文件>");
    printf("\n");
    return 0;
    }

    DWORD ShowFileAttributes(LPSTR szPath)
    {
    //文件属性结构
    WIN32_FILE_ATTRIBUTE_DATA wfad;
    printf("文件:%s\n",szPath);
    //获取文件属性
    if(!GetFileAttributesEx(szPath,GetFileExInfoStandard,&wfad))
    {
    printf("获取文件属性错误:%d\n",GetLastError());
    return 1;
    }
    //显示相关时间
    printf("创建时间:\t");
    ShowFileTime(&(wfad.ftCreationTime));
    printf("最后访问时间:\t");
    ShowFileTime(&(wfad.ftLastAccessTime));
    printf("最后修改时间:\t");
    ShowFileTime(&(wfad.ftLastWriteTime));
    //显示文件大小
    ShowFileSize(wfad.nFileSizeHigh,wfad.nFileSizeLow);
    //显示文件属性
    ShowFileAttrInfo(wfad.dwFileAttributes);

    return 0;
    }

    int main(PCHAR argv[])
    {
    printf("请输入文件路径\n");
    scanf("%s",argv);
    ShowFileAttributes(argv[0]);
    printf("显示参数指定文件的属性、时间、大小;\n");
    return 0;
    }

    这个程序运行后就显示一行“请输入文件路径”,然后输了一个路径按了enter以后程序就瘫了…………
  • 相关阅读:
    c语言中的增量与减量········不要太聪明
    存储器··············RAM,SRAM,EEPROM 等等
    对于 sizeof(char)的一些零碎······
    C语言中float,double等类型,在内存中的结构
    同步异步存储器
    Linux的帧缓冲设备(Framebuffer)简介
    嵌入式 c 中结构体经常碰到_I、 __O 、__IO是什么意思?
    新型的按键扫描程序
    数据结构
    jQuery(八)选择器与选择方法
  • 原文地址:https://www.cnblogs.com/dkblog/p/3089099.html
Copyright © 2011-2022 走看看