求高手,C++编程题,用vc 6软件,感激不尽!!!!!在下面任选一题,要附加材料的我再给。 !

1.文件批量改名工具:程序对指定的目录下(不含子目录)的全部文件自动改名,要求允许用户指定文件名的前部,后部则由三位数字组成,如(picture001、picture00... 1.文件批量改名工具:程序对指定的目录下(不含子目录)的全部文件自动改名,要求允许用户指定文件名的前部,后部则由三位数字组成,如(picture001、picture002),另外提供选项指示是否将目录名也加入作为文件名的最前部。 2.歌曲信息统计程序:编序读取附加材料中的歌曲列表文件,在一个文本文件中输出统计数据——总的播放时间。 3.备份程序:程序接受一个字符串指定待备份目录A和一个字符串指定备份用目录B,将A及其子目录下的全部文件复制到B目录中(B目录是A目录的完整复制,包括目录结构),另若B目录不存在则创建,若B目录存在且在其中有与A目录中同名的文件则比较哪个文件更新,若A目录中的文件新则删除B中的相应文件并从A中复制
做好请发我邮箱lw5116@163.com。谢谢
展开
 我来答
luosiyong
2011-12-03 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1741万
展开全部
1、用FindFirstFile和FindNextFile遍历目录。每遍历到一个文件就用MoveFile函数将文件名改成新的格式,用几个变量计数当前的文件个数,和给定的前缀组合成新的文件名。
2、需要知道材料格式
3、和第一个方法类似,只是用CopyFile实现复制。另外是要判断如果是子目录,则需要递归复制。
这里有类似的代码,你根据功能自己改一改吧。
http://hi.baidu.com/luosiyong/blog/item/494d4f8dc9308f14b31bbaf9.html
更多追问追答
追问
高手,我实在不会编,请你帮我做个完整程序好吗?谢谢了。如果做第二题的话我需把附加材料发您邮箱,格式是txt。
追答
第一题的:
#include
#include
#include

#pragma comment(lib, "shlwapi")

BOOL RenameFiles(const char *szPath, const char *szPrefixName, bool bUseDirName = false)
{
char szFind[MAX_PATH] = {0};
strcpy(szFind, szPath);
strcat(szFind, "\\*");
WIN32_FIND_DATA findFileData;
HANDLE hFind = FindFirstFile(szFind, &findFileData);
if (hFind != INVALID_HANDLE_VALUE)
{
int index = 0;
do
{
if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// 目录, 跳过.
}
else
{
// 文件, 处理.
char szFile[MAX_PATH] = {0};
strcpy(szFile, szPath);
strcat(szFile, "\\");
strcat(szFile, findFileData.cFileName);
char szDirName[MAX_PATH] = {0};
if (bUseDirName)
{
strcpy(szDirName, szPath);
PathStripPath(szDirName);
strcat(szDirName, "_");
}
char szExt[MAX_PATH] = {0};
strcpy(szExt, PathFindExtension(szFile));
char szNewName[MAX_PATH] = {0};
sprintf(szNewName, "%s\\%s%s%03d%s", szPath, szDirName, szPrefixName, ++index, szExt);
MoveFile(szFile, szNewName);
}
}
while (FindNextFile(hFind, &findFileData));
FindClose(hFind);
return TRUE;
}
return FALSE;
}

int main()
{
char path[MAX_PATH], prefix[MAX_PATH];
bool use_dir_name;
puts("Input Path:");
gets(path);
puts("Input Prefix:");
gets(prefix);
puts("Use Dir Name [0/1]?:");
scanf("%d", &use_dir_name);
RenameFiles(path, prefix, use_dir_name);
return 0;
}
/*
Input Path:
D:\C++\test\test
Input Prefix:
picture
Use Dir Name [0/1]?:
1
Press any key to continue
*/
Mr94Fei
2011-12-04 · TA获得超过192个赞
知道小有建树答主
回答量:138
采纳率:100%
帮助的人:223万
展开全部
发了,你查看一下.不懂email沟通 这个太麻烦.
记得给分哦.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
koko200147
2011-12-03 · TA获得超过283个赞
知道小有建树答主
回答量:600
采纳率:0%
帮助的人:312万
展开全部
$100
追问
知道做吗高手?
追答
知道啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式