Показать сообщение отдельно
Старый 09.09.2015, 13:33   #10
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Регистр в именах файлов Windows

http://rsdn.ru/article/qna/baseserv/fileop.xml

Функция MoveFile имеет ряд ограничений. Во-первых, она не позволяет обработать ситуацию, когда уже имеется файл с именем toName.
Создал на винте файл test.txt (с тестовым наполнением), а на флешке TEST.txt (пустой).
Запустил блитц и выполнил
CopyFile("F:io\test.txt","H:test.txt")
Результат: содержимое файла на флешке обновилось (скопировалось с винта), а вот имя осталось заглавным.
Выполняю код ещё раз. Имя по-прежнему остаётся неизменным. О чём и говорил АВТОМАТик.

Правда, с флешки на винт - ситуация аналогичная. То есть от типа носителей результат не зависит.
(быть может, поведение функции в разных версиях ОС немного разнится, как это уже не раз бывало, и, возможно, 8-ка корректно выполняет переименование в отличии от 7-ки)

http://rsdn.ru/article/qna/baseserv/fileop.xml
Для преодоления указанных ограничений имеется функция MoveFileEx( ).
Видимо, проводник использует её, а сторонние утилиты - на усмотрение авторов. В совокупности с тем, что алгоритмы проверки имён могут быть регистрозависмыми, это может привести к некоторым эффектами работы программы.

Вывод - не балуйся с регистром.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием