200只给一个人。。。文件操作的问题

superhandsome 2004-08-07 11:49:12
1。将d:\test1\2004-08-7 01到d:\test1\2004-08-7 24这24个,
分别以当天24个小时命名的文件,移动到d:\test2\对应文件下。

2。将d:\test1\dbtest.mdb文件拷贝到d:\test2\下,并命名为d1.mdb,d2.md和bd3.mdb三个文件。它们的内容都是dbtest.mdb.

3.删除d:\test1\下的所有内容。。。

在线等....谁解决了。200全给他......谢谢了.....
...全文
402 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
sohou 2004-08-09
  • 打赏
  • 举报
回复
哈哈,这么多人抢啊
楼主你自己就写不出来么,这些你学C的时候都能搞定的啊
holyeagle 2004-08-09
  • 打赏
  • 举报
回复
分值很高,但好像都是文件操作的问题,用FindFile,MoveFile就可以实现,楼主可以自己做的。
或者是我们没有明白楼主的意思。
liuyanlin 2004-08-09
  • 打赏
  • 举报
回复
为了分,大家真的是什么都干了啊,哈哈,,
lixiaosan 2004-08-09
  • 打赏
  • 举报
回复
CString strDate1 = "d:\\test1\\2004-08-7 ";
CString strDate2 = "d:\\test2\\2004-08-7 ";
CString strTemp;
CString strSrc, strDest;
for(int i=0; i<24; i++)
{
strTemp.Format("%d", i+1);
if(strTemp.GetLength() == 1)
strTemp = "0" + strTemp;

strSrc = strDate1 + strTemp;
if( !PathFileExists(strSrc) )
continue;
strDest = strDate2 + strTemp;

MoveFile(strSrc, strDest);
}

if( !PathFileExists("d:\\test1\\dbtest.mdb") )
return;

CopyFile("d:\\test1\\dbtest.mdb", "d:\\test2\\d1.mdb");
CopyFile("d:\\test1\\dbtest.mdb", "d:\\test2\\d2.mdb");
CopyFile("d:\\test1\\dbtest.mdb", "d:\\test2\\d3.mdb");

DeleteDirectory("d:\\test1");
lixiaosan 2004-08-09
  • 打赏
  • 举报
回复
1.
CString strDate1 = "d:\\test1\\2004-08-7 ";
CString strDate2 = "d:\\test2\\2004-08-7 ";
CString strTemp;
CString strSrc, strDest;
for(int i=0; i<24; i++)
{
strTemp.Format("%d", i+1);
if(strTemp.GetLength() == 1)
strTemp = "0" + strTemp;

strSrc = strDate1 + strTemp;
if( !PathFileExists(strSrc) )
continue;
strDest = strDate2 + strTemp;

MoveFile(strSrc, strDest);
}
lixiaosan 2004-08-09
  • 打赏
  • 举报
回复
BOOL DeleteDirectory(char *DirName)//如删除 DeleteDirectory("c:\\aaa")
{
CFileFind tempFind;
char tempFileFind[MAX_PATH];
sprintf(tempFileFind,"%s\\*.*",DirName);
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile();
if(!tempFind.IsDots())
{
char foundFileName[MAX_PATH];
strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH));
if(tempFind.IsDirectory())
{
char tempDir[MAX_PATH];
sprintf(tempDir,"%s\\%s",DirName,foundFileName);
DeleteDirectory(tempDir);
}
else
{
char tempFileName[MAX_PATH];
sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
DeleteFile(tempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(DirName))
{
MessageBox(0,"删除目录失败!","警告信息",MB_OK);//比如没有找到文件夹,删除失败,可把此句删除
return FALSE;
}
return TRUE;
}
snaill 2004-08-09
  • 打赏
  • 举报
回复
总之,你只要善用几个文件操作的函数就好了,非要别人写出代码才解决问题,也有点太懒了吧
Kudeet 2004-08-09
  • 打赏
  • 举报
回复
在右上角有一排 回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 保存 | 关闭窗口

点管理到另一个页面给分结帖!
superhandsome 2004-08-09
  • 打赏
  • 举报
回复
1. CTime lt_Time = CTime::GetCurrentTime();
CString ls_filename;
CString ls_sourdirectory;
CString ls_destdirectory;

for(li_Ret = 0; li_Ret<= 23; li_Ret++)
{
ls_filename.Format("%04d-%02d-%02d %02d", lt_Time2.GetYear(),lt_Time2.GetMonth(),lt_Time2.GetDay(),li_Ret);
ls_sourdirectory.Format("d:\\test1\\%s", ls_filename);
ls_destdirectory.Format("d:\\test2\\%s", ls_filename);
MoveFileEx(ls_sourdirectory,ls_destdirectory,MOVEFILE_COPY_ALLOWED);
}

2.
ls_sourdirectory = _T("d:\test1\dbtest.mdb");
ls_destdirectory = _T("d:\\test2\\d1.mdb");
CopyFile(ls_sourdirectory,ls_destdirectory,false);
ls_destdirectory = _T("d:\\test2\\d2.mdb");
CopyFile(ls_sourdirectory,ls_destdirectory,false);
ls_destdirectory = _T("d:\\test2\\d3.mdb");
CopyFile(ls_sourdirectory,ls_destdirectory,false);
3.
BOOL CBackUpDlg::DeleteDirctory(LPCTSTR lpszDir)
{
if (lpszDir == NULL)
return FALSE;

BOOL bRet = TRUE;
TCHAR szFrom[MAX_PATH];
memset(szFrom, 0, sizeof(szFrom));
lstrcpy(szFrom, lpszDir);

SHFILEOPSTRUCT fileop;
fileop.hwnd = NULL;
fileop.wFunc = FO_DELETE;
fileop.pFrom = szFrom;
fileop.pTo = NULL;
fileop.fFlags = FOF_SILENT | FOF_NOCONFIRMATION;

bRet = (SHFileOperation(&fileop) == 0);

return bRet;
}
main()
{
CString ls_test = _T("d:\\test1");
DeleteDirctory(ls_test);
}

综合大家的指点和自己的努力,最终还是写出来了。
在此衷心的感谢帮助和批评我的人。。。。

现在的麻烦事是。。。。。分如何给。。。哦买嘎的~
rr12 2004-08-09
  • 打赏
  • 举报
回复
Delete a directory.

int _rmdir( const char *dirname );

int _wrmdir( const wchar_t *dirname );

Routine Required Header Compatibility
_rmdir <direct.h> Win 95, Win NT
_wrmdir <direct.h> or <wchar.h> Win NT
superhandsome 2004-08-08
  • 打赏
  • 举报
回复
删除文件目录是哪个?
立即结!!
kvw3000 2004-08-08
  • 打赏
  • 举报
回复
1.
sprintf(szFileFrom, "%s%s %02d", "d:\\test1\\", szNowDate, i + 1); //这里增加小时,就是你说的空格01之类的
//我的这一句就是将文件全名设为类似2004-08-07 01 中间有个空格号的。。。,没问题
//将日期格式化成2004-08-07的形式,你开始写的是2004-08-7
sprintf(str, "%04d-%02d-%02d", tm->tm_year + 1900,//注意改动,这么简单的应该会改吧
tm->tm_mon + 1, tm->tm_mday);


2. 而且在这个d:\test1这个目录下,还有其他的文件。所以所不能移整个d:\test1目录。
我的实现完全符合要求,如果你看懂了的话就知道了

3. 希望在移动时,如果某个文件是空,能报警。
这个也很简单,打开文件后第一次读如果就是eof了,就是空文件了

另外:程序都写得这么清楚了,思考思考就可以解决了,ft
flyelf 2004-08-07
  • 打赏
  • 举报
回复
1、MoveFile
2、CopyFile
3、WIN32_FIND_DATA tFind = {0};
HANDLE hSearch = ::FindFirstFile("e:\\test1\\*.*", &tFind);
if (hSearch == INVALID_HANDLE_VALUE )
return;
do
{
std::string szFile("e\\test1\\");
szFile += tFind.cFileName;
::SetFileAttributes(szFile.c_str(), 0);
::DeleteFile(szFile.c_str());
}while(::FindNextFile(hSearch,&tFind));
::FindClose(hSearch);
落伍者 2004-08-07
  • 打赏
  • 举报
回复
Dim fo, files
Set fo = CreateObject("Scripting.FileSystemObject")
Set files = fo.GetFolder("e:\test1").files

For Each f In files
If Left(f.Name, 10) = "2004-08-07" Then
f.Move "e:\test2\" & f.Name
End If
If f.Name = "test1.mdb" Then
f.Copy "e:\test2\" & "db1.mdb", True
f.Copy "e:\test2\" & "db2.mdb", True
f.Copy "e:\test2\" & "db3.mdb", True
End If
Next
fo.DeleteFolder "e:\test1"
fo.CreateFolder "e:\test1"
kugou123 2004-08-07
  • 打赏
  • 举报
回复
2.
CopyFile("d:\\test1\\dbtest.mdb","d:\\test2\\d1.mdb",FALSE);
CopyFile("d:\\test1\\dbtest.mdb","d:\\test2\\d2.mdb",FALSE);
CopyFile("d:\\test1\\dbtest.mdb","d:\\test2\\d3.mdb",FALSE);
Kudeet 2004-08-07
  • 打赏
  • 举报
回复
有现成的
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=192154
110_110_110 2004-08-07
  • 打赏
  • 举报
回复
不太明白意思,大概是用CFile类的Dupilicate()去拷贝,然后再新建一个文删除原来那个件Remove(),帮你凑一下人气
nlstone 2004-08-07
  • 打赏
  • 举报
回复
MoveFileEx()
CopyFileEx()
详见MSDN
superhandsome 2004-08-07
  • 打赏
  • 举报
回复
居然放不了200。。这样。。再放。。完了后。。
人格保证补上另外100~。。不够再加!
nlstone 2004-08-07
  • 打赏
  • 举报
回复
你说的文件名的处理只是字符串的一个简单处理,这也有什么问题吗?
至于文件存在否,搜索文件可使用CFileFind等,很方便
加载更多回复(5)
就是要流量 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊大家多给评论 点赞 关注啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧