Dirwalk.h
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:2k
源码类别:

图形图象

开发平台:

Visual C++

  1. #ifndef __DIRWALK_H__
  2. #define __DIRWALK_H__
  3. ////////////////////////////////////////////////
  4. // CSplitPath
  5. ////////////////////////////////////////////////
  6. class CTRL_EXT_CLASS CSplitPath
  7. {
  8. public:
  9. CSplitPath(LPCTSTR pszPath);
  10. CSplitPath();
  11. virtual ~CSplitPath();
  12. // operations
  13. public:
  14. void Split(LPCTSTR pszPath);
  15. void Make();
  16. // attributes
  17. public:
  18. CString GetPath() const;
  19. CString GetDrive() const;
  20. CString GetDir() const;
  21. CString GetFileName() const;
  22. CString GetExt() const;
  23. void SetDrive(LPCTSTR pszDrive);
  24. void SetDir(LPCTSTR pszDir);
  25. void SetFileName(LPCTSTR pszFileName);
  26. void SetExt(LPCTSTR pszExt);
  27. protected:
  28. void Init();
  29. private:
  30. TCHAR m_szPath[MAX_PATH];
  31. TCHAR m_szDrive[_MAX_DRIVE];
  32. TCHAR m_szDir[_MAX_DIR];
  33. TCHAR m_szFname[_MAX_FNAME];
  34. TCHAR m_szExt[_MAX_EXT];
  35. };
  36. inline CSplitPath::CSplitPath()
  37. {
  38. Init();
  39. }
  40. inline CSplitPath::CSplitPath(LPCTSTR pszPath)
  41. {
  42. Init();
  43. Split(pszPath);
  44. }
  45. inline void CSplitPath::Init()
  46. {
  47. m_szPath[0] = 0;
  48. m_szDrive[0] = 0;
  49. m_szDir[0] = 0;
  50. m_szFname[0] = 0;
  51. m_szExt[0] = 0;
  52. }
  53. inline CSplitPath::~CSplitPath()
  54. {
  55. }
  56. inline CString CSplitPath::GetPath() const
  57. {
  58. return m_szPath;
  59. }
  60. inline CString CSplitPath::GetDrive() const
  61. {
  62. return m_szDrive;
  63. }
  64. inline CString CSplitPath::GetDir() const
  65. {
  66. return m_szDir;
  67. }
  68. inline CString CSplitPath::GetFileName() const
  69. {
  70. return m_szFname;
  71. }
  72. inline CString CSplitPath::GetExt() const
  73. {
  74. return m_szExt;
  75. }
  76. inline void CSplitPath::SetDrive(LPCTSTR pszDrive)
  77. {
  78. lstrcpy(m_szDrive,pszDrive);
  79. }
  80. inline void CSplitPath::SetDir(LPCTSTR pszDir)
  81. {
  82. lstrcpy(m_szDir,pszDir);
  83. }
  84. inline void CSplitPath::SetFileName(LPCTSTR pszFileName)
  85. {
  86. lstrcpy(m_szFname,pszFileName);
  87. }
  88. inline void CSplitPath::SetExt(LPCTSTR pszExt)
  89. {
  90. lstrcpy(m_szExt,pszExt);
  91. }
  92. inline void CSplitPath::Split(LPCTSTR pszPath)
  93. {
  94. _tsplitpath(pszPath,m_szDrive,m_szDir,m_szFname,m_szExt);
  95. }
  96. inline void CSplitPath::Make()
  97. {
  98. _tmakepath(m_szPath,m_szDrive,m_szDir,m_szFname,m_szExt);
  99. }
  100. #define ARRAY_SIZE(A)  (sizeof(A) / sizeof((A)[0]))
  101. #endif //__DIRWALK_H__