如何拷贝文件,并同时改名

lovers 2005-03-25 08:50:53
如何将一个目录下的某一个指定格式的文件全部拷贝到某一目录下,并改名.请大家指点!谢谢!!
...全文
1536 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
0011411 2005-03-26
  • 打赏
  • 举报
回复
好啊
Kudeet 2005-03-26
  • 打赏
  • 举报
回复
如何实现查找遍历文件夹包括子文件夹?

//SEARCH FOLDER - Searches folder and all sub-folders,
//reading every file it comes across.
void SearchFolder( TCHAR * path )
{
//Declare all needed handles
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
TCHAR filename[ MAX_PATH + 256 ];
TCHAR pathbak[ MAX_PATH ];

//Make a backup of the directory the user chose
strcpy( pathbak, path );

//Find the first file in the directory the user chose
hFind = FindFirstFile ( "*.*", &FindFileData );

//Use a do/while so we process whatever FindFirstFile returned
do
{
//Is it valid?
if ( hFind != INVALID_HANDLE_VALUE )
{
//Is it a . or .. directory? If it is, skip, or we'll go forever.
if ( ! ( strcmp( FindFileData.cFileName, "." ) ) ||
! ( strcmp( FindFileData.cFileName, ".." ) ) )
{
continue;
}
//Restore the original directory chosen by the user
strcpy( path, pathbak );

//Append the file found on to the path of the
//directory the user chose
sprintf( path, "%s\\%s", path, FindFileData.cFileName );

//If SetCurrentDirectory Succeeds ( returns 1 ) the
//current file is a directory. Pause this function,
//and have it call itself. This will begin the whole
//process over in a sub directory.
if ( ( SetCurrentDirectory( path ) ) )
{
SearchFolder( path );
}

//Otherwise right here is where you need to
//insert what you want to do.
//As an example let's add the filename to a list box.
//INSERT WHAT YOU WANT DONE BELOW!
SendMessage( m_listbox_hwnd, LB_ADDSTRING, 0, path );
}
}
while ( FindNextFile ( hFind, &FindFileData )
&& hFind != INVALID_HANDLE_VALUE );
FindClose ( hFind );
}//SEARCH FOLDER

tanyaliji 2005-03-26
  • 打赏
  • 举报
回复
其实只要拷贝过去, 然后再RENAME就可以了.

怎么判断是文件及如何获取目录名,文件名?谢谢! 分数不是问题
用DIR
leyaw 2005-03-25
  • 打赏
  • 举报
回复
帮你顶一下
lovers 2005-03-25
  • 打赏
  • 举报
回复
怎么判断是文件及如何获取目录名,文件名?谢谢! 分数不是问题
MuseIn 2005-03-25
  • 打赏
  • 举报
回复
CopyFile
语法:CopyFile (szSrcFile, szTargetFile);
说明:CopyFile函数创建一个由参数szSrcFile指定的文件的拷贝。新文件由参数szTargetFile指定文件名。
参数:
szSrcFile
指定要拷贝的文件的文件名。如果该文件名是限定的,也就是,如果它包括一个路径,CopyFile将从指定位置拷贝该文件。如果szSrcFile包含一个未限定文件名,也就是,没有路径信息,CopyFile将从由系统变量SRCDIR标识的路径拷贝。为拷贝一组文件,在该参数位置使用通配符。
szTargetFile
指定给由szSrcFile标识的文件的拷贝的名称。如果文件名是限定的,也就是,如果它包含一个路径,CopyFile将把文件拷贝到路径指定的位置。如果szSrcFile包含一个未限定文件名,也就是,没有路径信息,拷贝将被创建在由系统变量TARGETDIR指定的目录中。如果目标目录不存在,它将被创建。
当由szSrcFile指定的文件名中包含一个通配符时,szTargetFile的文件名部分被忽略;每个源文件以它的现存名被拷贝到由szTargetFile指定的路径。如果szTargetFile包含一个未限定文件名,文件将被拷贝到由系统变量TARGETDIR指定的目录中。因此,CopyFile不能被用来拷贝和重命名一组文件。当szSrcFile包含一个或多个通配符时,源目录和目标目录必须不同。
返回值:
0:表明函数成功地从源目录拷贝文件至目标目录。
< 0:表明函数因下列情况之一未能拷贝所要文件:
COPY_ERR_CREATEDIR (-27):目标目录不能被创建。确保系统变量TARGETDIR中的路径语法正确并且你有权访问目标驱动器。
COPY_ERR_MEMORY (-6):函数未能分配完成拷贝文件进程所需的内存。尽可能多地终止正在运行的应用程序以释放内存。
COPY_ERR_NODISKSPACE (-38):函数未能在目标驱动器上找到足够的磁盘空间来拷贝文件。在目标驱动器上释放磁盘空间。
COPY_ERR_OPENINPUT (-2):函数未能打开系统变量SRCDIR指定的输入文件。确保源文件有一个有效的文件名并且源文件和目标目录都存在。
COPY_ERR_OPENOUTPUT (-3):函数未能拷贝所要文件。
COPY_ERR_TARGETREADONLY (-46):TARGETDIR中的文件是只读文件。删除目标文件的只读属性并重试。
所有其它负值:表明发生一些其它不确定错误。
注解:
·如果你使用未限定文件名并在使用CopyFile时设置SRCDIR和 TARGETDIR的值,在调用CopyFile前用VarSave保存当前值并然后用VarRestore重新设置。如果目标目录不存在,CopyFile创建它。
·你不能通过调用CopyFile时使用通配符来重命名一组文件。然而,单独一个文件时你可以使用CopyFile来做到。
·为包括子目录,调用XcopyFile函数。
·对于文件传输,XCopyFile 是CopyFile的一个完美替换。XCopyFile可以做版本检测,标记锁定的.dll和.exe文件待系统重启后更新,并且递增共享的.dll和.exe文件的注册表访问计数器。
·因为Windows 95及更高版本不允许一个空文件被拷贝,Windows NT不允许创建空文件,CopyFile在这些平台下当被用来拷贝空文件(Size=0KB)时将不工作。
· 在用WriteProfString 或 WriteProfInt修改.ini文件后, Windows 95及更高版本下,你必须在使用CopyFile前刷新高速缓存。所有.ini文件在Windows 95及更高版本下被放在高速缓存中;这种特性可能导致延迟将修改写到指定文件。这接着可能妨碍随后的文件操作。为避免这个问题,简单地以空参数调用WriteProfString来强制Windows 95 及更高版本立即写数据到.ini文件,如下所示:
WriteProfString ("C:\\Test.ini", "Windows", "KeyboardDelay", "100");
file://null string ("") for all four parameters
WriteProfString ("", "", "", "");
file://CopyFile should now have access to updated file.
CopyFile ("C:\\Test.ini", "C:\\Temp\\Test.ini");
babynuaa 2005-03-25
  • 打赏
  • 举报
回复
FindFirstFile( "*.your format", ... );
FindNextFile( ... );
BOOL CopyFile(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName,
BOOL bFailIfExists
);
FindClose(...);
oyljerry 2005-03-25
  • 打赏
  • 举报
回复
CopyFile同时改名

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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