已取得的成就列表以及我坚持的内容以帮助理解我的要求
我所取得的成就:
打开用户指定的目录,显示该目录下的所有文件。
我尚未达到的目标:
根据预定义的名称自动重命名此目录中的所有文件 - 文件当前命名为随机字符,我希望自动将它们重命名为“August 1”、“August 2”、“August 3”等。文件有不同的扩展名,我希望扩展保持不变。
所以这就是我打开和显示目录的方式:
void DirectorySelector::OpenDirectory(void)
{
// convert directory string to const char
DIRECTORY = directory.c_str();
pdir = opendir (DIRECTORY);
}
void DirectorySelector::DisplayDirectory(void)
{
// read directory
while (pent = readdir (pdir))
{
std::cout << pent->d_name << "\n";
}
}
这就是我坚持的,重命名文件(文件有不同的扩展名,不确定这是否会在以后引起问题?)
一旦程序到达 while 循环,我就会收到以下错误:
MultipleRename.exe 中 0x009657C1 处的未处理异常:0xC0000005:访问冲突读取位置 0xCCCCCDE0。
void DirectoryOperator::StandardRename(void)
{
i = 1;
while (pent = readdir (pdir))
{
oldname = pent->d_name;
newname = "August " + i;
OLDNAME = oldname.c_str();
NEWNAME = newname.c_str();
rename(OLDNAME, NEWNAME);
i++;
}
}
注意:所有声明都在其他地方处理,并且为了简单起见删除了验证,如果您需要代码,我可以发布它。此外,我已经检查过 DirectoryOperator 类中的目录是否仍然打开,并且我在 Windows 上使用 MSVS2012。
提前致谢。