C++ 包装器和 Windows FileSystemObject 对象扩展
这是一个 Windows 文件系统对象的 C++ 实现。它包装并扩展了标准文件系统对象接口(方法/属性)。现在,C++ 开发者可以在无需编写自己的 Win32 API 代码的情况下操作文件夹和文件。他们可以利用经过充分测试的 Windows 文件系统对象。
引言
Windows 自带一个 FileSystemObject
系统,它提供了易于使用的文件夹/文件操作接口。不幸的是,只有基于脚本语言的开发者才能利用它。CFileSystemObject
是 Windows FileSystemObject
的 C++ 实现。它将标准接口(方法/属性)封装在 C++ 类中。C++ 开发者可以轻松地使用它来与 Windows 文件夹和文件交互,而无需处理 Win32 API(及其复杂的参数)。此外,我还进一步扩展了最终的 C++ 类,以支持二进制文件操作。大多数开发者可以使用这些 C++ 类完成 90% 的文件夹/文件相关编码工作。
文件系统对象类概览
类名 |
描述 |
CFsoFileSystemObject |
FileSystemObject 接口的包装器;用于获取其他对象接口。 |
CFsoDrive |
Drive 接口的包装器;用于操作驱动器(例如,c:\)。 |
CFsoFolder |
Folder 接口的包装器;用于操作文件夹(例如,c:\windows)。 |
CFsoFile |
File 接口的包装器;用于操作文件(例如,c:\windows\xxx.dll)。 |
CFsoTextStream |
TextStream 接口的包装器;用于读取/写入/追加文本文件(支持 ASCII 和 Unicode)。 |
CFsoBinaryStream |
接口扩展,用于支持二进制文件操作;用于读取/写入/追加二进制文件。 |
如何使用它们?
- 您需要获取
FileSystemObject
的一个实例。 - 获取实例后,您可以使用它来访问其他接口并使用公开的方法/属性。
- 驱动
- 文件夹
- 文件
- 打开文本流(使用步骤 3 获取的文本文件对象)
- 打开二进制流(使用步骤 3 获取的二进制文件对象)
- 枚举指定文件夹下的所有子文件夹(使用步骤 2 获取的文件夹对象)
- 枚举指定文件夹下的所有文件(使用步骤 2 获取的文件夹对象)
CFileSystemObject * fso = new CFileSystemObject();
CFsoDrive * driveC = fso->GetDrive(L"c:\\");
CFsoFolder * folderWinRoot = fso->GetFolder(L"c:\\windows");
CFsoFile * fileText = fso->GetFile(L"c:\\windows\\abc.txt");
CFsoFile * fileBinary = fso->GetFile(L"c:\\windows\\abc.bin");
CFsoTextStream * textStream =
fileText->OpenAsTextStream(1/*IO Mode*/, 0/*Text Format*/);
CFsoBinaryStream * binaryStream = fileBinary->OpenAsBinaryStream(1/*IO Mode*/);
CFsoList<CFsoFolder> * subFolders = folderWinRoot->GetSubFolders();
for (int i = 0; i < subFolders->GetCount(); i++)
{
CFsoFolder * folder = subFolders->Get(i);
...
...
...
}
subFolders->Clear(true);
// Clear all folder objects in the list and release memory occupied
CFsoList<CFsoFile> * files = folderWinRoot->GetFiles();
for (int i = 0; i < files->GetCount(); i++)
{
CFsoFile * file = files->Get(i);
...
...
...
}
files->Clear(true);
// Clear all file objects in the list and release memory occupied
End
- 为了帮助您理解这些类、方法、枚举和 typedef,我已经在源代码中编写了具体的注释,并使用 Doxygen 生成了 HTML 文档。您可以轻松找到您需要的信息来使用这些类。解压缩下载的源代码文件后,您会找到一个 .CPP 文件、一个 .H 文件,以及一个名为 HTML 的文件夹。请打开该文件夹并双击 index.html 以打开源代码文档。尽情享受吧!
- 请确保 scrrun.dll 的文件路径根据您的 Windows 系统设置正确。在我的 PC 上,默认 Windows 根路径是 C:\Winnt。您的系统可能并非如此。如果您的系统根路径是 C:\Windows,请相应地更改 CFileSystemObject.h 中的第 25 行。否则,将发生编译错误。