一个目录操作的类

原创 2004年12月30日 08:19:00

学习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+='//';
 }
}

JAVA文件/目录操作类

一个JAVA对于文件/目录操作类,支持WINDOWS/LINUX/UNIX平台,其中ZIP与UNZIP对中文文件/目录名支持的不好,如果发现错误请联系我jenshy@126.com,转载请添加我的BL...
  • jenshy
  • jenshy
  • 2006年05月25日 09:41
  • 3782

MFC 目录操作 CFile类

1.得到当前文件目录:DWORD GetCurrentDirectoryW(DWORD length,LPWSTR  lpbuffer) 例如: TCHAR chDir[256]={0}; //清空字...
  • zq4132
  • zq4132
  • 2017年02月08日 19:48
  • 435

java 文件目录操作方法

  类File提供了一种与机器无关的方式来描述一个文件对象的属性。下面我们介绍类File中提供的各种方法。◇ 文件或目录的生成  public File(String path);/*如果path是实...
  • hongfu_
  • hongfu_
  • 2007年12月14日 11:15
  • 734

c语言目录操作总结

===================================================char *getcwd( char *buffer, int maxlen ); (获取当前目录...
  • u012713968
  • u012713968
  • 2014年03月10日 12:19
  • 478

c语言中的目录操作

头文件: #include #include opendir(): 函数原型: DIR * opendir(const char* path); 打开一个目录,在失败的时候返回NULL...
  • guozhiyingguo
  • guozhiyingguo
  • 2016年11月07日 17:24
  • 214

Delphi 的目录操作

贴在这里,备查: System.ChDir Changes the current directory. System.IOUtils.TDirectory.Copy ...
  • pcplayer
  • pcplayer
  • 2017年04月05日 14:14
  • 211

【文件/文件夹操作】php文件夹/文件目录操作函数

PHP中常见的文件夹操作以及文件操作函数
  • jiandanokok
  • jiandanokok
  • 2016年11月20日 13:07
  • 1488

linux常用命令---目录操作类

1.pwd:显示当前所在的工作目录(做实验时用该命令查看所在位置,特别是cd命令切换目录后) 2.cd:从当前目录切换到指定目录(不能切换文件)   cd:快速切换到宿主目录   cd ..:快...
  • u011828411
  • u011828411
  • 2013年12月16日 17:28
  • 354

File类--目录操作

import java.io.File; import java.io.IOException; public class Demo { public static void main(Str...
  • dwenxue
  • dwenxue
  • 2017年12月04日 14:52
  • 38

Linux 下C语言文件-目录基本操作

仅提供大概参考~ 纯手写未调试/** *编写一个程序,提供一个参数(文件名/路径) *如果该参数对应文件名/目录名不存在,则创建之 *设置创建者拥有RWX权限,其他用户只有R-X权限 *如果对应文件存...
  • bykjscn
  • bykjscn
  • 2012年10月31日 16:19
  • 3936
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个目录操作的类
举报原因:
原因补充:

(最多只允许输入30个字)