C++ - 如何读取系统文件
C++ - How to read system files
我正在尝试查找一个以"silabs-cdc"
开头的文件"C:\Windows\System32\DriverStore\FileRepository"
DIR *dir;
struct dirent *ent;
if ((dir = opendir(path.c_str())) != NULL) { // FAILED
while ((ent = readdir(dir)) != NULL)
{
std::string fln = ent->d_name;
if(fln.substr(0,10) == "silabs-cdc")
{
// I found it
break;
}
}
closedir(dir);
}
但是在Windows Vista上,OpenDir总是以错误结束,因为文件夹不存在(但它存在!(,Windows XP,Windows 10工作正常。我也尝试了查找第一个文件函数,但结果相同。
是否有任何系统文件夹保护?是否有可能通过它 - 以编程方式?
顺便说一句:非系统文件夹工作正常,文件夹的路径正确
编辑:以管理员身份运行程序将不执行任何操作
根据我们的评论交流,看起来在 Vista 上,您构建了一个 32 位可执行文件,但驱动程序是作为 64 位驱动程序安装的。WOW64 重定向工具意味着即使您尝试在C:WindowsSystem32
下打开一条路径,您实际上也打开了一条在C:WindowsSysWOW64
下的路径。您可以显式禁用重定向,也可以构建可执行文件以匹配系统的位度,因为 64 位可执行文件不会受到重定向的影响。
相关文章:
- 无法找到/读取配置文件.conf-FileIOException
- 正在读取二进制文件(is_open)
- C++试图读取一个文件并输出到另一个文本文件
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 如何在c ++中读取.inp文件?
- 读取某些文件时出现分段错误,似乎与文件大小无关
- c++ 读取 xml 文件的内容
- 为什么 getline() 不读取文本文件中的所有内容?
- C++ 读取整个文件目录
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 正在读取 obj 文件!(指数)
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 如何读取文本文件中的数据并为每列 c++ 分配数组
- 如何读取 TXT 文件并仅将 int 存储在 C 中
- 如何读取/查询文件系统和文件结构
- C++ - 如何读取系统文件
- Qt5:如何在本地文件系统中读取/写入文件
- Linux 读取系统调用不从文件读取
- 如何使用C读取NTFS文件系统的元文件
- 如何在32位系统上读取4GB文件