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全给他......谢谢了.....
...全文
373 点赞 收藏 25
写回复
25 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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等,很方便
回复
加载更多回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-08-07 11:49
社区公告

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