一个目录操作的类
来源:互联网 发布:java重写的快捷键 编辑:程序博客网 时间:2024/06/05 17:59
学习MFC的过程中,建立了一个目录类来在操作目录的时候进行有关目录的相关操作
1.检测目录是否存在;
2.建立目录;
3.从文件名中提取目录名;
4.强制建立目录;
5.去除文件名末尾"/";
6.增加"/"到目录名;
以下代码参照了delphi中vcl的有关代码,MFC中可能存在相关的类,但我没有找到。
代码如下:
// Directory.h: interface for the CDirectory class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DIRECTORY_H__F1C129FA_8FC5_4036_8CD0_1D43C5D25641__INCLUDED_)
#define AFX_DIRECTORY_H__F1C129FA_8FC5_4036_8CD0_1D43C5D25641__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CDirectory
{
public:
CDirectory();
virtual ~CDirectory();
//检测目录是否存在
static BOOL DirectoryExists(LPCTSTR lpszDirectory);
//建立目录
static BOOL CreateDir(LPCTSTR lpszDir);
//从文件名中提取目录名
static CString ExtractFilePath(LPCTSTR lpszFileName);
//强制建立目录
static BOOL ForceDirectories(CString& strDirectory);
//去除文件名末尾"/"
static void ExcludeTrailingPathDelimiter(CString& strDirectory);
//增加"/"到目录名
static void IncludeTrailingPathDelimiter(CString& strDirectory);
};
#endif // !defined(AFX_DIRECTORY_H__F1C129FA_8FC5_4036_8CD0_1D43C5D25641__INCLUDED_)
// Directory.cpp: implementation of the CDirectory class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Directory.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDirectory::CDirectory()
{
}
CDirectory::~CDirectory()
{
}
BOOL CDirectory::DirectoryExists(LPCTSTR lpszDirectory)
{
DWORD dwRet=0;
dwRet=GetFileAttributes(lpszDirectory);
if (dwRet==-1)
{
return FALSE;
}
else
{
if (dwRet==FILE_ATTRIBUTE_DIRECTORY)
{
return TRUE;
}
else
{
return FALSE;
}
}
}
BOOL CDirectory::ForceDirectories(CString& strDirectory)
{
BOOL bRet=TRUE;
// CString strOut;
// CString str(lpszDirection);
if (strDirectory.GetLength()==0)
{
return FALSE;
}
if (strDirectory.Right(1)=="//")
{
strDirectory=strDirectory.Left(strDirectory.GetLength()-1);
}
if (strDirectory.GetLength()<3 || DirectoryExists(strDirectory) || strDirectory==ExtractFilePath(strDirectory))
{
return TRUE;
}
if (strDirectory.GetLength()==0 || DirectoryExists(strDirectory))
{
return TRUE;
}
if (ForceDirectories(ExtractFilePath(strDirectory))==TRUE && CreateDir(strDirectory)==TRUE)
{
return TRUE;
}
else
{
return FALSE;
}
}
CString CDirectory::ExtractFilePath(LPCTSTR lpszFileName)
{
CString strFile(lpszFileName);
CString strReturn;
strReturn=strFile.Left(strFile.ReverseFind('//'));
return strReturn;
}
BOOL CDirectory::CreateDir(LPCTSTR lpszDir)
{
return ::CreateDirectory(lpszDir,NULL);
}
void CDirectory::ExcludeTrailingPathDelimiter(CString& strDirectory)
{
if (strDirectory.Right(1)=="//")
{
strDirectory=strDirectory.Left(strDirectory.GetLength()-1);
}
}
void CDirectory::IncludeTrailingPathDelimiter(CString& strDirectory)
{
if (strDirectory.Right(1)!="//")
{
strDirectory+='//';
}
}
- 一个目录操作的类
- 自定义一个封装操作目录的类
- 一个简单的操作活动目录的类(ADHelper)
- 一个简单的操作活动目录的类(ADHelper)
- 编写一个文件目录常用操作的类
- 编写一个文件目录常用操作的类
- 编写一个文件目录常用操作的类
- 编写一个文件目录常用操作的类
- 目录操作/打印一个文件或目录的详细信息
- 一个用java.util.zip创建和读取zip文件的类,可以操作目录
- 分享一个收集到的文件和目录操作类FileSystemObject
- 自己封装的一个文件目录操作用户对象
- 自己封装的一个文件目录操作用户对象
- javaIO_将一个目录下的文件拷贝到另一个目录下(边读边写操作)
- 文件目录常用操作的类
- 文件目录常用操作的类
- Emacs的目录操作
- mobile 目录的操作
- Web Server程序编写学习笔记(一)
- Visual Studio .NET 2003 脚本
- 女人的话中话(英文版),供男生参考哦
- 網址
- 双对象列表,双字符串列表
- 一个目录操作的类
- 我对DELPHI写的几个基类型
- 一个简单的,适应多种数据库之间存取操作的数据库访问层
- .Net Remoting印象
- 字符串操作
- 基于MIDP1.0的模仿Sprite类
- 如何判断一个机器的MSSQL是否启动
- InstallShield 修改对话窗体 Banner 图片
- 设计模式的有趣解释-追MM【收藏】