解决Windows剪切、删除、移动海量文件时,速度慢和卡死的问题

 

问题现状:

  1. 高端配置台式电脑,开机,然后立即剪切一个有8万文件的目录到另一个盘,执行到2%的时候就卡住了,等了10分钟没任何进度。

  2. 用另一个文件夹同步工具,将剩下的98%同步过去,仅仅花费了2分钟左右,而且有操作历史,可以看到复制后两边文件完全一致(包括文件的时间截)。

  3. 用windows自带的SHIFT+DEL彻底删除功能,删了30秒钟,总进度不到2%,果断取消。

  4. 换成了CMD命令直接去删(rd 文件夹 /s /q),8万个文件,10秒不到就删完了

 

下面是终极解决方案:

    如果在命令行或 cmd 批处理文件通过 move 移动文件夹的时候,移动的文件夹是跨驱动器的,那么将会显示拒绝访问

    解决方案:

    通过先复制文件夹到另一个驱动器,然后删除文件夹,

    ——复制文件夹可以使用 xcopy 的方法

   ——复制文件,无论文件夹里面的文件是否隐藏文件。复制文件夹里面的子文件夹,无论子文件夹是否空的。忽略提示需要覆盖的文件,可以使用下面代码:

    xcopy 原有的文件夹 移动到的文件夹  /H /E /Y 

(注意:复制后不会保留外层目录,需要自己先建好)

    然后通过 rd 删除文件夹,在 rd 可以使用 /s /q 除目录本身外,还将删除指定目录下的所有子目录和文件,安静模式,带 /S 删除目录树时不要求确认:

    rd 原有的文件夹 /s /q

    这样就可以做到移动文件夹到另一个服务器。

    在 cmd 对于参数是不区分大写和小写,如 /s 和 /S 是相同的。

 

简记方式

拷贝:xcopy-hey(嘿)    源 ——> 目标

删除:rd/s/q(“入党申请”) 目标

 

 

 

 

好的,我可以为您提供一个简单的Java代码,用于实现文件管理系统。该系统可以执行剪切、复制删除文件的功能。以下是代码: ```java import java.io.*; public class FileManager { // 剪切文件 public static void cutFile(String sourceFilePath, String destinationFilePath) throws IOException { File sourceFile = new File(sourceFilePath); File destinationFile = new File(destinationFilePath); if (sourceFile.exists()) { InputStream in = new FileInputStream(sourceFile); OutputStream out = new FileOutputStream(destinationFile); byte[] buffer = new byte[1024]; int length; while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } in.close(); out.close(); sourceFile.delete(); System.out.println("文件剪切成功!"); } else { System.out.println("文件不存在!"); } } // 复制文件 public static void copyFile(String sourceFilePath, String destinationFilePath) throws IOException { File sourceFile = new File(sourceFilePath); File destinationFile = new File(destinationFilePath); if (sourceFile.exists()) { InputStream in = new FileInputStream(sourceFile); OutputStream out = new FileOutputStream(destinationFile); byte[] buffer = new byte[1024]; int length; while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } in.close(); out.close(); System.out.println("文件复制成功!"); } else { System.out.println("文件不存在!"); } } // 删除文件 public static void deleteFile(String filePath) { File file = new File(filePath); if (file.exists()) { file.delete(); System.out.println("文件删除成功!"); } else { System.out.println("文件不存在!"); } } } ``` 上述代码使用Java的IO流操作,实现了剪切、复制删除文件的功能。您只需要调用相应的方法并传入文件路径,即可完成对应的文件操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值