gpt4 book ai didi

c# - 无法复制/移动文件名末尾有空格的文件

转载 作者:太空狗 更新时间:2023-10-29 17:45:19 24 4
gpt4 key购买 nike

真的很疯狂!我使用 Far 2.0 创建了一个文件( http://www.farmanager.com/ ,也许你可以使用其他文件管理器);它的文件名为“C:\123.txt”(是的,文件路径末尾有空格)

我正在尝试使用 C# 程序复制或移动此文件:

File.Copy("C:\\123.txt ", "C:\\456.txt", true);

但它失败并显示“找不到文件‘C:\123.txt’”。异常(exception)。但是文件存在!

我正在尝试 Windows API:

[DllImport("kernel32.dll")]
public static extern int MoveFile(string lpExistingFileName, string lpNewFileName);
MoveFile("C:\\123.txt ", "C:\\456.txt",);

但它也失败了。

我正在尝试 xcopy 实用程序:

C:\>xcopy "C:\123.txt " "C:\456.txt" /Y
File not found - 123.txt
0 File(s) copied

如何以编程方式重命名文件?为什么会这样?

我的操作系统:Windows 7 x64

最佳答案

您的文件名中有一个字符在 Win32 中是非法的。要绕过 Win32 路径解析器,您只需在文件名前加上 \\?\ 前缀。例如:

MoveFile(@"\\?\C:\123.txt ", "C:\\456.txt");

此技术还允许您拥有长达 32k 的路径(在 Win32 中您只能得到 260,包括驱动器号)。

关于c# - 无法复制/移动文件名末尾有空格的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com