/*
	CDir
	ディレクトリ関係の処理を行う
	ヘッダ ファイル

	Version		: 0.0 (Release1)
	Version		: 0.0 (Release1)
	説明		: ファイルの検索やパスの処理など


	作成日		: 2000/12/07
	修正日		: ----/--/--
	改定履歴	: 
*/


#if !defined(AFX_DIR_H__93ADE130_C4C3_4B83_B2D3_CC96ACC56F0D__INCLUDED_)
#define AFX_DIR_H__93ADE130_C4C3_4B83_B2D3_CC96ACC56F0D__INCLUDED_

#include <afxtempl.h>

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CDir  
{
public:
	double GetAllFleSize();
	CString GetFilePath(int index);					//	見つかったファイルのパスを得る
	int GetFileCount();								//	見つかったファイル数を得る
	int FindFile(CString path,int subDirectory);	//	ファイルを検索
	int FindDir(CString path);						//	ディレクトリを検索

	static int GetDirectoryDate(CString path,CTime &time);	//	ディレクトリの日付を取得
	static int MakeAllDirectory(CString path);		//	パスを補完
	static int MakeDirectory(CString path);			//	ディレクトリの生成
	static CString PathToDir(CString path);			//	ディレクトリパスの取得
	static CString PathToName(CString path);		//	ファイル名の取得
	static CString PathToExt(CString path);			//	ファイル拡張子の取得
	static int FileExist(CString path);				//	ファイルの存在チェック
	static int GetFileAttribute(CString path);		//	ファイルの属性取得

	static CString AddSlash(CString path);			//	スラッシュを後ろに追加
	static CString AddBackSlash(CString path);		//	バックスラッシュを後ろに追加
	static CString RemoveSlash(CString path);		//	スラッシュを後ろから削除
	static CString RemoveBackSlash(CString path);	//	バックスラッシュを後ろから削除

	static int CheckSlash(CString path);						//	最後にスラッシュがあるか
	static int CheckBackSlash(CString path);					//	最後にバックスラッシュがあるか
	static int CheckLastChar(CString path,unsigned char c);		//	最後の文字をチェック

	static CString GetUpDir(CString path);			//	ひとつ上のディレクトリパスを取得

	CDir();
	virtual ~CDir();

	enum
	{
		FILE_TYPE_FILE		= 1,
		FILE_TYPE_DIRECTORY = 2,
		FILE_TYPE_NOTFOUND	= 0
	};

	enum
	{
		FILE_ATTR_NORMAL	= CFile::Attribute::normal,
		FILE_ATTR_READONLY	= CFile::Attribute::readOnly,
		FILE_ATTR_HIDDEN	= CFile::Attribute::hidden,
		FILE_ATTR_SYSTEM	= CFile::Attribute::system,
		FILE_ATTR_VOLUME	= CFile::Attribute::volume,
		FILE_ATTR_DIRECTORY	= CFile::Attribute::directory,
		FILE_ATTR_ARCHIVE	= CFile::Attribute::archive,
	};

private:
	CArray<CString,CString&>	m_fileList;		//	ファイルリスト
	double						m_allFileSize;

};

#endif // !defined(AFX_DIR_H__93ADE130_C4C3_4B83_B2D3_CC96ACC56F0D__INCLUDED_)
