获取文件详细信息

转自:https://blog.csdn.net/xl19900502/article/details/51445990


DWORD dwSize = GetFileVersionInfoSize(strPath, NULL);  

  
        UINT nSize = dwSize * sizeof(TCHAR);  
        LPVOID pBlock = new TCHAR[nSize];  
        memset(pBlock, 0, nSize);  
        GetFileVersionInfo(strPath, 0, dwSize, pBlock);  
  
        char* pVerValue = NULL;  
        nSize = 0;  
        VerQueryValue(pBlock, _T("\\VarFileInfo\\Translation"),  
            (LPVOID*)&pVerValue, &nSize);  
  
        CString strSubBlock, strTranslation, strTemp;  
        strTemp.Format(_T("000%x"), *((unsigned short int *)pVerValue));  
  
        strTranslation = strTemp.Right(4);  
        strTemp.Format(_T("000%x"), *((unsigned short int *)&pVerValue[2]));  
        strTranslation += strTemp.Right(4);  
          
        //080404b0为中文,040904E4为英文  
  
        //文件描述   
        strSubBlock.Format(_T("\\StringFileInfo\\%s\\FileDescription"), strTranslation);  
        VerQueryValue(pBlock, strSubBlock.GetBufferSetLength(256), (LPVOID*)&pVerValue, &nSize);  
        strSubBlock.ReleaseBuffer();  
        strTemp.Format(_T("文件描述: %s"), pVerValue);  
  
        //内部名称   
        strSubBlock.Format(_T("\\StringFileInfo\\%s\\InternalName"), strTranslation);  
        VerQueryValue(pBlock, strSubBlock.GetBufferSetLength(256), (LPVOID*)&pVerValue, &nSize);  
        strSubBlock.ReleaseBuffer();  
        strTemp.Format(_T("文件描述: %s"), pVerValue);  
  
        //合法版权   
        strSubBlock.Format(_T("\\StringFileInfo\\%s\\LegalTradeMarks"), strTranslation);  
        VerQueryValue(pBlock, strSubBlock.GetBufferSetLength(256), (LPVOID*)&pVerValue, &nSize);  
        strSubBlock.ReleaseBuffer();  
        strTemp.Format(_T("合法版权: %s"), pVerValue);  
  
        //原始文件名   
        strSubBlock.Format(_T("\\StringFileInfo\\%s\\OriginalFileName"), strTranslation);  
        VerQueryValue(pBlock, strSubBlock.GetBufferSetLength(256), (LPVOID*)&pVerValue, &nSize);  
        strSubBlock.ReleaseBuffer();  
        strTemp.Format(_T("原始文件名: %s"), pVerValue);  
  
        //产品名称   
        strSubBlock.Format(_T("\\StringFileInfo\\%s\\ProductName"), strTranslation);  
        VerQueryValue(pBlock, strSubBlock.GetBufferSetLength(256), (LPVOID*)&pVerValue, &nSize);  
        strSubBlock.ReleaseBuffer();  
        strTemp.Format(_T("产品名称: %s"), pVerValue);  
  
        //产品版本   
        strSubBlock.Format(_T("\\StringFileInfo\\%s\\ProductVersion"), strTranslation);  
        VerQueryValue(pBlock, strSubBlock.GetBufferSetLength(256), (LPVOID*)&pVerValue, &nSize);  
        strSubBlock.ReleaseBuffer();  

        strTemp.Format(_T("产品版本: %s"), pVerValue);  


加上依赖,否则会报链接错误(GetFileVersionInfoSize)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java中可以通过使用java.io包中的File类来获取文件的基本信息。以下是一些常用的获取文件基本信息的方法: 1. 获取文件路径:可以使用File类的getPath方法来获取文件的路径。例如:File file = new File("C:\\file\\test.txt"); String path = file.getPath();,path将得到文件的路径"C:\file\test.txt"。 2. 获取文件名:可以使用File类的getName方法来获取文件的名称。例如:File file = new File("C:\\file\\test.txt"); String name = file.getName();,name将得到文件的名称"test.txt"。 3. 获取文件大小:可以使用File类的length方法来获取文件的大小,返回的是以字节为单位的文件大小。例如:File file = new File("C:\\file\\test.txt"); long size = file.length();,size将得到文件的大小。 4. 判断文件是否存在:可以使用File类的exists方法来判断文件是否存在。例如:File file = new File("C:\\file\\test.txt"); boolean exists = file.exists();,exists将返回true表示文件存在。 5. 判断文件是否为目录:可以使用File类的isDirectory方法来判断文件是否为目录。例如:File file = new File("C:\\file\\test.txt"); boolean isDirectory = file.isDirectory();,isDirectory将返回false表示文件不是目录。 6. 判断文件是否为普通文件:可以使用File类的isFile方法来判断文件是否为普通文件。例如:File file = new File("C:\\file\\test.txt"); boolean isFile = file.isFile();,isFile将返回true表示文件是普通文件。 除了上述方法外,File类还提供了很多其他的方法来获取文件的基本信息,如获取文件的最后修改时间、创建时间等。开发者可以根据需要使用这些方法来获取文件详细信息。 ### 回答2: 在Java中,可以使用java.io.File类来获取文件的基本信息。通过创建File对象并传入文件路径,就可以获取文件的一些基本属性。 1. 获取文件名:可以使用File类中的getName()方法来获取文件的名称,即文件的最后一个路径元素的名称。 2. 获取文件路径:可以使用File类中的getPath()方法来获取文件的路径,即包括文件名的完整路径。 3. 获取文件大小:可以使用File类中的length()方法来获取文件的大小,返回的是以字节为单位的文件大小。 4. 获取文件的父路径:可以使用File类中的getParent()方法来获取文件的父路径,即文件所在目录的路径。 5. 判断文件是否存在:可以使用File类中的exists()方法来判断文件是否存在,如果存在则返回true,否则返回false。 6. 判断是否是文件夹:可以使用File类中的isDirectory()方法来判断文件是否是一个文件夹,如果是文件夹则返回true,否则返回false。 7. 获取文件的最后修改时间:可以使用File类中的lastModified()方法来获取文件的最后修改时间,返回的是一个以毫秒为单位的时间戳。 8. 判断文件是否可读/可写/可执行:可以使用File类中的canRead()、canWrite()、canExecute()方法来判断文件是否可读、可写、可执行,如果满足条件则返回true,否则返回false。 ### 回答3: Java获取文件的基本信息可以使用Java.io.File类来实现。File类提供了一些方法用于获取文件的基本信息,以下是一些常用的方法: 1. 获取文件名:使用getName()方法可以获取文件的名称,即文件名加文件扩展名。 例如: ```java File file = new File("C:/test.txt"); String fileName = file.getName(); ``` 这里的fileName将获取到的文件名为"test.txt"。 2. 获取文件路径:使用getPath()方法可以获取文件的路径。 例如: ```java File file = new File("C:/test.txt"); String filePath = file.getPath(); ``` 这里的filePath将获取到的文件路径为"C:/test.txt"。 3. 获取文件父目录:使用getParent()方法可以获取文件所在的父目录路径。 例如: ```java File file = new File("C:/test.txt"); String parentPath = file.getParent(); ``` 这里的parentPath将获取到的父目录路径为"C:/"。 4. 判断文件是否存在:使用exists()方法可以判断文件是否存在。 例如: ```java File file = new File("C:/test.txt"); boolean exists = file.exists(); ``` 如果文件存在,则exists为true,否则为false。 5. 获取文件大小:使用length()方法可以获取文件的大小,单位为字节。 例如: ```java File file = new File("C:/test.txt"); long fileSize = file.length(); ``` 这里的fileSize将获取到的文件大小。 除了上述方法外,Java还提供了其他一些获取文件基本信息的方法,如获取文件创建时间、最后修改时间等。可以通过File类的其他方法来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值