Re[4]: Минутка WTF-20: кто тут Буратино?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 10.04.17 11:39
Оценка:
Здравствуйте, Sinatr, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>>>Оно?

S>>Да, все признаки. Но я не списывал, если речь об этом.

S>Речь о решении проблемы. Переименуйте папку сначала в "старое имя"+"123", а уже потом все получится.

Конкретно в моем случае не пойдет. Речь идет о тесте для драйвера файловой системы, а он должен позволять in-place переименование.
Заюзал WinAPI. Проблемы как таковой нет, но есть осадок от того что не назван виновник.

S>>>Было бы хорошо в спойлер засовывать ответ...

S>>Хотелось бы его выяснить сначала. А то мне кажется что козлит дотнет. А выше было мнение что виноват я.

S>Было высказано предположение (см. ту же ссылку), что это WinAPI. Хотите найти виноватого (хотя важно ли это?) — проверьте.

Через WinAPI работает как часы.
Re[5]: Минутка WTF-20: кто тут Буратино?
От: Mr.Delphist  
Дата: 10.04.17 13:36
Оценка: 6 (1) +1
Здравствуйте, Sharov, Вы писали:

S>Господа, стыд мне, но я не знаю, что за история стоит за невозможность создать папку COM1 на диске с. Не просветите?


http://www.softelectro.ru/rs232prog.html

Мультикарта, косые комЫ, LPT, гейм-порт вообще на звуковой карточке... Косички от VIA не подходили к другим матерям и наоборот, хотя форм-фактор физически одинаковый... НостальжЫ!

Вот чутка тёплой ламповости:
https://www.youtube.com/watch?v=yjeVEJqzyI0
Re[6]: Минутка WTF-20: кто тут Буратино?
От: Sharov Россия  
Дата: 10.04.17 16:03
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Здравствуйте, Sharov, Вы писали:


S>>Господа, стыд мне, но я не знаю, что за история стоит за невозможность создать папку COM1 на диске с. Не просветите?


MD>http://www.softelectro.ru/rs232prog.html


MD>Мультикарта, косые комЫ, LPT, гейм-порт вообще на звуковой карточке... Косички от VIA не подходили к другим матерям и наоборот, хотя форм-фактор физически одинаковый... НостальжЫ!


MD>Вот чутка тёплой ламповости:

MD>https://www.youtube.com/watch?v=yjeVEJqzyI0

Я в курсе про serial порты, но как это связано с папкой на диске?????

УПД. Нашел:

Попробуйте, создать в проводнике папку или файл с именем "СОМ1", сделать это не получится. ОС Windows зарезервировала имена от СОМ1 до СОМ9 для работы с СОМ-портами.

Кодом людям нужно помогать!
Отредактировано 10.04.2017 16:06 Sharov . Предыдущая версия .
Re[7]: Минутка WTF-20: кто тут Буратино?
От: Mr.Delphist  
Дата: 10.04.17 16:49
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>УПД. Нашел:

S>

S>Попробуйте, создать в проводнике папку или файл с именем "СОМ1", сделать это не получится. ОС Windows зарезервировала имена от СОМ1 до СОМ9 для работы с СОМ-портами.


Ага, вот так можно сдампить поток из порта:

copy COM1 c:\myfile.txt


А вот так — распечатать:

copy c:\myfile.txt LPT1

Re[5]: Минутка WTF-20: кто тут Буратино?
От: Sinatr Германия  
Дата: 11.04.17 07:27
Оценка:
Здравствуйте, samius, Вы писали:

S>>Речь о решении проблемы. Переименуйте папку сначала в "старое имя"+"123", а уже потом все получится.

S>Конкретно в моем случае не пойдет. Речь идет о тесте для драйвера файловой системы, а он должен позволять in-place переименование.

Вам виднее, мне фраза "тест драйвера файловой системы" не объясняет, почему решение с двойным переименованием не подходит.
Добавьте проверку в стиле "oldName.ToLower() == newName.ToLower()" где этот сценарий отрабатывается особо или поместите вызов в try/catch(IOException) с уведомлением пользователя о невозможности выполнить действие (переименовывает ведь пользователь?).

Если через winapi все работает и портирования не планируется, то оставьте с ним (можно пометить как HACK и забить )
---
ПроГLамеры объединяйтесь..
Re[6]: Минутка WTF-20: кто тут Буратино?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.17 07:36
Оценка:
Здравствуйте, Sinatr, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>>>Речь о решении проблемы. Переименуйте папку сначала в "старое имя"+"123", а уже потом все получится.

S>>Конкретно в моем случае не пойдет. Речь идет о тесте для драйвера файловой системы, а он должен позволять in-place переименование.

S>Вам виднее, мне фраза "тест драйвера файловой системы" не объясняет, почему решение с двойным переименованием не подходит.

Потому что тест должен проверить, как будет вести себя драйвер в случае переименования tmp->TMP.

S>Добавьте проверку в стиле "oldName.ToLower() == newName.ToLower()" где этот сценарий отрабатывается особо или поместите вызов в try/catch(IOException) с уведомлением пользователя о невозможности выполнить действие (переименовывает ведь пользователь?).

Переименовывает тест.

S>Если через winapi все работает и портирования не планируется, то оставьте с ним (можно пометить как HACK и забить )

Спасибо, кэп. Но я не спрашивал, как мне поступить.
Re[6]: Минутка WTF-20: кто тут Буратино?
От: alexzzzz  
Дата: 12.04.17 13:26
Оценка: :)
Здравствуйте, Mr.Delphist, Вы писали:

MD>Мультикарта, косые комЫ, LPT, гейм-порт вообще на звуковой карточке... Косички от VIA не подходили к другим матерям и наоборот, хотя форм-фактор физически одинаковый... НостальжЫ!


Ой! Я вчера ставил Windows Server 2003 с подсовыванием установщику драйвера raid-контроллера на 3.5" дискетке. Еле живую дискетку отыскали.
Re: Минутка WTF-20: кто тут Буратино?
От: Sinix  
Дата: 12.04.17 16:24
Оценка:
Здравствуйте, samius, Вы писали:

UPD Баг фича.

IOException
...
The sourceDirName and destDirName parameters refer to the same file or directory.

(с)

Что интересно, для File.Move() такой проверки нет, пруф:
https://referencesource.microsoft.com/#mscorlib/system/io/directory.cs,1255
и
https://referencesource.microsoft.com/#mscorlib/system/io/file.cs,1239

Я бы завёл issue в corefx, в качестве обходного варианта —
http://stackoverflow.com/questions/1622597/renaming-directory-with-same-name-different-case

P.S. На участие в серии "Минутка WTF" не тянет, квеста нет
Отредактировано 12.04.2017 16:31 Sinix . Предыдущая версия . Еще …
Отредактировано 12.04.2017 16:29 Sinix . Предыдущая версия .
Re[2]: Минутка WTF-20: кто тут Буратино?
От: Mystic Artifact  
Дата: 12.04.17 18:32
Оценка: +1
Здравствуйте, Sinix, Вы писали:

Баг на баге, а не фича:

1. NTFS раздел вполне может быть регистрозависимым.

2. А в File.Move зачем проверка на exists? Неужто система сама не разберётся и не отрапортует об ошибке?
Re[3]: Минутка WTF-20: кто тут Буратино?
От: Sinix  
Дата: 12.04.17 18:35
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA>1. NTFS раздел вполне может быть регистрозависимым.

+1. Про .net core и lin даже не буду. Но поскольку задокументировано — всё, фича.


MA>2. А в File.Move зачем проверка на exists? Неужто система сама не разберётся и не отрапортует об ошибке?



Тёмное наследие первого фреймворка.
Re[2]: Минутка WTF-20: кто тут Буратино?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.04.17 04:00
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>UPD Баг фича.


Странная фича, если она лишает некоторой возможности.

S>Что интересно, для File.Move() такой проверки нет, пруф:


И выходит, что фича кривая, т.к. используя фактически одну реализацию через WinAPI в одном случае фича место имеет, а в другом — нет.

S>Я бы завёл issue в corefx, в качестве обходного варианта —

S>http://stackoverflow.com/questions/1622597/renaming-directory-with-same-name-different-case

Ну так если это фича, то о чем issue? Может быть следует попросить добавить проверку для файлов?

S>P.S. На участие в серии "Минутка WTF" не тянет, квеста нет


Как же нет, если даже ты поменял мнение с бага на фичу?
Re[3]: Минутка WTF-20: кто тут Буратино?
От: Sinix  
Дата: 13.04.17 05:21
Оценка:
Здравствуйте, samius, Вы писали:

S>>P.S. На участие в серии "Минутка WTF" не тянет, квеста нет

S>Как же нет, если даже ты поменял мнение с бага на фичу?

Ну, все посты в серии "Минутка WTF" не содержат ответа в стартовом сообщении
И не поменял, а криво записал. Читай как "не_баг_а_фича".
Re[4]: Минутка WTF-20: кто тут Буратино?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.04.17 06:24
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>>>P.S. На участие в серии "Минутка WTF" не тянет, квеста нет

S>>Как же нет, если даже ты поменял мнение с бага на фичу?

S>Ну, все посты в серии "Минутка WTF" не содержат ответа в стартовом сообщении

И что за ответ в стартовом сообщении?

S>И не поменял, а криво записал. Читай как "не_баг_а_фича".

А зачем предлагал issue создать и приводил отлчия в реализации File.Move?
Re[5]: Минутка WTF-20: кто тут Буратино?
От: Sinix  
Дата: 13.04.17 06:53
Оценка:
Здравствуйте, samius, Вы писали:


S>>Ну, все посты в серии "Минутка WTF" не содержат ответа в стартовом сообщении

S>И что за ответ в стартовом сообщении?
Каждый вопрос в серии — загадка в духе "что тут не так?". А у тебя сразу вся интрига раскрыта


S>>И не поменял, а криво записал. Читай как "не_баг_а_фича".

S>А зачем предлагал issue создать и приводил отлчия в реализации File.Move?
Ну так я и сейчас предлагаю. Есть шанс, что поведение поменяют, особенно с учётом lin.
Re[6]: Минутка WTF-20: кто тут Буратино?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.04.17 07:11
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>>И что за ответ в стартовом сообщении?

S>Каждый вопрос в серии — загадка в духе "что тут не так?". А у тебя сразу вся интрига раскрыта
Это вопрос проницательности. Я еще не понял, в чем интрига.

S>>А зачем предлагал issue создать и приводил отлчия в реализации File.Move?

S>Ну так я и сейчас предлагаю. Есть шанс, что поведение поменяют, особенно с учётом lin.

Есть шанс что его поменяют для файла, т.к. смысл такого ограничения я все еще не понимаю.
Re[4]: Минутка WTF-20: кто тут Буратино?
От: Evgeniy Skvortsov Россия  
Дата: 14.04.17 14:36
Оценка:
Здравствуйте, const_volatile, Вы писали:

_>при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват?


только что проверил, создаётся файл с именем com1 спокойно и редактируется и сохранятеся
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.