提问人:Tobias Krasinger 提问时间:11/8/2023 最后编辑:Tobias Krasinger 更新时间:11/10/2023 访问量:21
File.Copy 失败,并显示参数不正确
File.Copy fails with The parameter is incorrect
问:
如果有以下代码:
File.Copy(@"c:\temp\test1.txt", @"c:\temp\test2.txt", true);
它失败了:
System.IO.IOException: 'The parameter is incorrect. : 'c:\temp\test2.txt''
这两个文件都存在。仅当面向 .NET 6 或更高版本时,才会发生此错误。当面向 .NET Framework 4.6(或任何其他框架版本)时,相同的代码会成功。 我发现 File.Copy 在 .NET 中使用了另一种实现,就像在 .NET Framework 中一样。
我还发现,使用 cmd 和
C:\temp>xcopy test1.txt test2.txt*
也失败,并出现相同的错误:
File creation error - The parameter is incorrect.
所以我想知道我的系统(Win 11 Enterprise,21H2)是否有问题。 有人知道是什么原因导致这个问题吗?
文件系统采用 NTFS 格式。
编辑:
我的问题现在变得更糟了。它现在在 .NET Framework 4.6 及更高版本中也失败:
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Win32.Win32Native.CopyFile(String src, String dst, Boolean failIfExists)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
调试时,我现在收到一个异常:
托管调试助手“FatalExecutionEngineError”:“运行时遇到致命错误。错误的地址位于线程 0x52bc 上的 0x030d2887。错误代码为0xc0000005。此错误可能是 CLR 中的错误,也可能是用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM 互操作或 PInvoke 的用户封送错误,这可能会损坏堆栈。
它仍然只是相同的一行代码
答: 暂无答案
评论