龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

VC判断一个文件为目录的方法

时间:2014-10-29 03:14来源:网络整理 作者:网络 点击:
分享到:
这篇文章主要介绍了VC判断一个文件为目录的方法,在Windows应用程序设计中非常具有实用价值,需要的朋友可以参考下

本文实例讲述了VC判断一个文件为目录的方法,分享给大家供大家参考。具体实现方法如下:

这是一个自定义函数,用于判断一个文件是否为目录:

复制代码 代码如下:
/**
 * check whether a file is a directory
 @return true if is a directory, else false(if file not exists, false)
 */
__declspec(dllexport) bool IsDirectory(const char* filename)
{
 
  DWORD dwAttr = ::GetFileAttributes(filename);  //得到文件属性
 
  if (dwAttr == 0xFFFFFFFF)    // 文件或目录不存在
    return false;
  else if (dwAttr&FILE_ATTRIBUTE_DIRECTORY)  // 如果是目录
    return true;
  else
    return false;
}

以下是GetFileAttribute定义,摘自msdn:

Retrieves a set of FAT file system attributes for a specified file or directory.得到FAT文件系统的文件属性

Parameters

lpFileName

The name of the file or directory.In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "//?/" to the path. For more information, see Naming a File.文件名或目录名。最大长度为系统的文件名最大长度。如果是unicode环境,需要调用这个函数的unicode版本。

Return Value

If the function succeeds, the return value contains the attributes of the specified file or directory.
如果函数成功了,返回值会包含以下文件属性:
If the function fails, the return value is INVALID_FILE_ATTRIBUTES. To get extended error information, call GetLastError.
如果函数失败,返回值是INVALID_FILE_ATTRIBUTES. 可以通过GetLastError获取更详细的出错信息
The attributes can be one or more of the following values.
文件属性可以是下列值的一个或多个的组合。

Return code/value Description

FILE_ATTRIBUTE_ARCHIVE
32
0x20

A file or directory that is an archive file or directory.

Applications use this attribute to mark files for backup or removal.

存档文件

FILE_ATTRIBUTE_COMPRESSED
2048
0x800

A file or directory that is compressed.

For a file, all of the data in the file is compressed.

For a directory, compression is the default for newly created files and subdirectories.

压缩文件

FILE_ATTRIBUTE_DEVICE
64
0x40

Reserved; do not use.

FILE_ATTRIBUTE_DIRECTORY
16
0x10

The handle that identifies a directory.

目录文件

FILE_ATTRIBUTE_ENCRYPTED
16384
0x4000

A file or directory that is encrypted.

For a file, all data streams in the file are encrypted.

For a directory, encryption is the default for newly created files and subdirectories.

加密文件

FILE_ATTRIBUTE_HIDDEN
2
0x2

The file or directory is hidden. It is not included in an ordinary directory listing.

隐藏文件

FILE_ATTRIBUTE_NORMAL
128
0x80

A file or directory that does not have other attributes set.

This attribute is valid only when used alone.

 

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192
0x2000

The file is not to be indexed by the content indexing service.

FILE_ATTRIBUTE_OFFLINE
4096
0x1000

The data of a file is not available immediately.

精彩图集

赞助商链接