Невозможно копировать / перемещать файлы с пробелом в конце имени файла

Это действительно безумие! Я создал файл с помощью Far 2.0 ( http://www.farmanager.com/ , возможно, вы можете использовать какой-нибудь другой файловый менеджер); его имя файла - 'C: \ 123.txt' (да, с пробелом в конце пути к файлу) .

И я пытаюсь скопировать или переместить этот файл с помощью программы C #:

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

Но возникает ошибка «Не удалось найти файл 'C: \ 123.txt'». исключение. Но файл существует!

Я пытаюсь использовать 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

9
задан Andreas Rejbrand 30 December 2013 в 00:04
поделиться