首页 > 其他分享 >Directory.Move方法的使用限制

Directory.Move方法的使用限制

时间:2023-12-14 17:44:22浏览次数:32  
标签:限制 Move 盘符 test 文件夹 Directory 移动

今天在写一个小工具的时候,发现在移动文件夹的时候出现了下面的错误:

System.IO.IOException:“Source and destination path must have identical roots. Move will not work across volumes.”

查了一下,说是Directory.Move这个方法不支持跨盘符移动。
于是写测试代码试了一下。

// 可以正常移动文件
File.Move(@"E:\test.txt", @"D:\test.txt");

// 可以正常移动文件夹
Directory.Move(@"E:\xxx\test", @"E:\test");

// 移动失败,会报异常
Directory.Move(@"E:\xxx\test2", @"D:\test2");

测试结果是果然不行。
相当于如果要跨盘符移动文件夹,需要自己手动去另一个盘符先创建文件夹,然后把文件夹里的所有文件都复制到新的文件夹中,再把旧的文件夹删除。
如果包含多层文件夹的话,需要递归操作,每一层都得这样,先创建新文件夹,然后再把文件夹下的文件复制过去。

我非常惊讶自己居然对Directory.Move方法的这个限制没有印象。难道我之前从来就没有跨盘符移动文件夹的需求吗?
惭愧!

标签:限制,Move,盘符,test,文件夹,Directory,移动
From: https://www.cnblogs.com/wzwyc/p/17901666.html

相关文章

  • 让JVM适应Docker限制:动态调整内存
    背景在现代应用开发中,容器化技术(如Docker)已经成为主流。但是,Java应用在容器中运行时面临着挑战:传统的JVM内存设置需要在启动时指定静态的堆内存大小,这种设置方法难以适应动态变化的容器环境。由于容器环境受到cgroup限制,传统的静态内存配置可能导致资源不足或浪费。因此,让JVM能够感......
  • 解决mysql的语句中group_concat长度限制问题
    在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了。其实MYSQL内部对这个是有设置的,默认不设置的长度是1024。查看默认配置showvariableslike"group_concat_max_len";模板返回是Variable_nameValuegroup_co......
  • el-date-picker 限制时间范围 picker-options 传参
    需求el-date-picker限制时间范围的选取,不能超过某个区间[startDate,endDate]。问题在于,disabledDate函数的参数默认是time,无法传递自定义参数[startDate,endDate]。分析传递给picker-options的值只能是对象。无法传递单个对象,但是可以传递一个返回对象的函数。解......
  • 在 IIS10 中设置上传大小限制
    在IIS10中设置上传大小限制编写人:左丘文2023-12-13各位,好久没有更新园子的相关文档了,外面的世界早已千变万化,但我解决问题的心依旧,作为程序员的我,发现问题就想mark一下,在此做个小结,分享出来,以供参考。有兴趣的同学,可以一同探讨与学习一下,否则就略过吧。根据网上查找的相关办......
  • 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返
    计算:所以我们要按照1M的上限来计算,假设每个单词都为16个字节,那么1M的内存可以处理多少个单词呢?1M=1024KB=1024*1024B。然后1M/16B=2^16个单词1G大概有多少个单词呢?有2^26个单词但是实际中远远不止这些,因为我们是按照最大单词长度算的。我们需要把这1G的单词分批处......
  • WPF限制字符串的最长显示长度,超出后尾部显示...
    在WPF中,如果你想要限制一个字符串的显示长度,并在超出后用省略号(...)表示,你可以使用TextBlock控件和设置它的TextTrimming属性。这种方法可以自动截断文本并在末尾添加省略号。<TextBlockText="{BindingYourString}"TextTrimming="CharacterEllipsis"Max......
  • 笔记:Qt开发之多线程的实现(QThread、moveToThread)
    目标:了解Qt实现多线程的两种基本方式(QThread、moveToThread),各自的实现方式、使用场景。1,子类化QThread实现方式:继承QThread类,重写run()函数实现多线程classWorkerThread:publicQThread{ Q_OBJECT public: explicitMyThread(QObject*parent=nullptr):QObject(pare......
  • Python办公自动化在Mac和Linux平台上的兼容性限制
    Python是一种强大的编程语言,被广泛应用于办公自动化领域。然而,有关Python办公自动化在Mac和Linux平台上的兼容性问题需要进行一定的探讨。本文将对Python办公自动化在Mac和Linux平台上的兼容性限制进行分析,并提供一些解决方案。Python是一种流行的编程语言,在办公自动化领域有着广泛......
  • elementplus的日期时间限制只能选择当前时间以后的(限制到时分秒)
    conststate=reactive({value:'',lastDate:'2023-10-2712:20:30'})//限制日期constdisabledDateFn=(date)=>{if(date.getTime()<newDate(state.lastDate).getTime()-8.64e7){returntrue;}returnfalse;};//限制小时constdis......
  • soapui报错: CXF directory must be set in global preferences
    文章目录下载官网下载网盘下载配置soapui生成代码时报错CXFdirectorymustbesetinglobalpreferences下载需要下载apache-cxf。官网下载官网地址:https://www.apache.org/dyn/closer.lua/cxf/3.5.4/apache-cxf-3.5.4.zip点如下地址即可。Theobjectisinourarchive......