拷贝整个目录的VC代码

最近修改升级代码,有个升级子目录的情况没考虑到。找了个代码,记录一下。
void copydir(char* src,char* dst)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char tmpsrc[256];
strcpy(tmpsrc,src);
strcat(tmpsrc,"//*.*");
hFind = FindFirstFile(tmpsrc, &FindFileData);
if(hFind == INVALID_HANDLE_VALUE)
return;
CreateDirectory(dst,0);
do
{
char newdst[256];
strcpy(newdst,dst);
if(newdst[strlen(newdst)]!='//')
strcat(newdst,"//");
strcat(newdst,FindFileData.cFileName);

char newsrc[256];
strcpy(newsrc,src);
if(newsrc[strlen(newsrc)]!='//')
strcat(newsrc,"//");
strcat(newsrc,FindFileData.cFileName);
if(FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
if(strcmp(FindFileData.cFileName,".")!=0&&strcmp(FindFileData.cFileName,"..")!=0)
{
copydir(newsrc,newdst);
}
}else
{
CopyFile(newsrc,newdst,false);
}
}while(FindNextFile(hFind,&FindFileData));
FindClose(hFind);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Java中拷贝整个目录并改名,你可以使用递归的方式来实现。下面是一个示例代码,演示了如何拷贝整个目录并将其重命名: ```java import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; public class DirectoryCopyExample { public static void main(String[] args) { String sourcePath = "/path/to/source/directory"; String destinationPath = "/path/to/destination/directory"; String newDirectoryName = "new_directory_name"; try { copyDirectory(new File(sourcePath), new File(destinationPath, newDirectoryName)); System.out.println("Directory copied successfully."); } catch (IOException e) { System.out.println("Failed to copy directory: " + e.getMessage()); } } private static void copyDirectory(File source, File destination) throws IOException { if (!source.isDirectory()) { throw new IllegalArgumentException("Source is not a directory."); } if (!destination.exists()) { destination.mkdirs(); } File[] files = source.listFiles(); if (files != null) { for (File file : files) { Path sourcePath = file.toPath(); Path destinationPath = new File(destination, file.getName()).toPath(); Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING); if (file.isDirectory()) { copyDirectory(file, new File(destination, file.getName())); } } } } } ``` 请替换 `sourcePath` 和 `destinationPath` 变量的值为你实际的源目录和目标目录路径,以及 `newDirectoryName` 为你想要的新目录名称。运行代码后,源目录将被拷贝到目标目录,并且以新的目录名称命名。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值