Здравствуйте, dmitry_npi, Вы писали:
_>Здравствуйте, samius, Вы писали:
_>Нельзя переместить директорию саму в себя.
Почему же? Где об этом написано? _>А вы чего ожидали? Или это .NET Core на Linux?
Именно этого и ожидал. Нет, это обычный дотнет на Win10.
Здравствуйте, samius, Вы писали:
_>>Нельзя переместить директорию саму в себя. S>Почему же? Где об этом написано?
как ты себе это представляешь? т.е. вот есть сумка, как полжить её в саму себя?
_>>А вы чего ожидали? Или это .NET Core на Linux? S>Именно этого и ожидал. Нет, это обычный дотнет на Win10.
при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват?
Здравствуйте, const_volatile, Вы писали:
_>Здравствуйте, samius, Вы писали:
_>>>Нельзя переместить директорию саму в себя. S>>Почему же? Где об этом написано?
_>как ты себе это представляешь? т.е. вот есть сумка, как полжить её в саму себя?
Нормально представляю. Жаль, что не все такое могут себе представить.
Я не прошу сумку положить в себя. Я прошу дать ей новое символическое имя. В том что метод, это выполняющий, называется Move — не моя вина.
_>>>А вы чего ожидали? Или это .NET Core на Linux? S>>Именно этого и ожидал. Нет, это обычный дотнет на Win10.
_>при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват?
Я просто ответил, на какой конфигурации это не работает.
Здравствуйте, samius, Вы писали:
_>>>>Нельзя переместить директорию саму в себя. S>>>Почему же? Где об этом написано? _>>как ты себе это представляешь? т.е. вот есть сумка, как полжить её в саму себя? S>Нормально представляю. Жаль, что не все такое могут себе представить. S>Я не прошу сумку положить в себя.
но метод Directory.Move делает именно это. "Moves a file or a directory and its contents to a new location."
S>Я прошу дать ей новое символическое имя.
тогда это называется либо hard link (directory junction в win32), либо symbolic link. и насколько я знаю в дотнете этого можно добиться только через p/invoke.
S>В том что метод, это выполняющий, называется Move — не моя вина.
твоя вина вина в том, что ты не понимаешь разницы между уровнями операционной системы, фреймворка, и приложения и мешаешь всё в одну кучу.
S>>>Именно этого и ожидал. Нет, это обычный дотнет на Win10. _>>при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват? S>Я просто ответил, на какой конфигурации это не работает.
ну и? причём тут дотнет, если это os не позволяет так делать? ты можешь то же самое написать на c++ или питоне, с тем же результатом.
Здравствуйте, const_volatile, Вы писали:
_>Здравствуйте, samius, Вы писали:
S>>Я не прошу сумку положить в себя.
_>но метод Directory.Move делает именно это. "Moves a file or a directory and its contents to a new location."
Считай что я прошу передвинуть папку в новое место, чье имя оканчивается большими буквами. В чем проблема?
S>>Я прошу дать ей новое символическое имя.
_>тогда это называется либо hard link (directory junction в win32), либо symbolic link. и насколько я знаю в дотнете этого можно добиться только через p/invoke.
Символическое здесь буквально — состоящее из символов.
S>>В том что метод, это выполняющий, называется Move — не моя вина.
_>твоя вина вина в том, что ты не понимаешь разницы между уровнями операционной системы, фреймворка, и приложения и мешаешь всё в одну кучу.
Возможно. Если это твой ответ, то давай на нем остановимся?
S>>Я просто ответил, на какой конфигурации это не работает.
_>ну и? причём тут дотнет, если это os не позволяет так делать? ты можешь то же самое написать на c++ или питоне, с тем же результатом.
Ты уверен что ос не позволяет так делать и что на C++ и WinAPI будет тот же результат?
Здравствуйте, const_volatile, Вы писали:
_>>>Нельзя переместить директорию саму в себя. S>>Почему же? Где об этом написано?
_>как ты себе это представляешь? т.е. вот есть сумка, как полжить её в саму себя?
Представьте себе это так, что перемещается не сумка, а её проекция на пространство возможных представлений.
_>>>А вы чего ожидали? Или это .NET Core на Linux? S>>Именно этого и ожидал. Нет, это обычный дотнет на Win10.
_>при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват?
В случае с директорией виноват именно .net — у winapi нет никаких проблем изменением капитализации имен существующих файлов.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, const_volatile, Вы писали:
_>>>при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват? S>>Я просто ответил, на какой конфигурации это не работает.
_>ну и? причём тут дотнет, если это os не позволяет так делать? ты можешь то же самое написать на c++ или питоне, с тем же результатом.
Детский сад. cmd.exe => mkdir \\?\C:\COM1 и наслаждаетесь папкой с именем COM1 в корне диска С
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
_>>>>при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват? S>>>Я просто ответил, на какой конфигурации это не работает. _>>ну и? причём тут дотнет, если это os не позволяет так делать? ты можешь то же самое написать на c++ или питоне, с тем же результатом. TK>Детский сад. cmd.exe => mkdir \\?\C:\COM1 и наслаждаетесь папкой с именем COM1 в корне диска С
наводящий вопрос: начинать имя с "\\?\" — это требование дотнета?
Здравствуйте, const_volatile, Вы писали:
TK>>Детский сад. cmd.exe => mkdir \\?\C:\COM1 и наслаждаетесь папкой с именем COM1 в корне диска С _>наводящий вопрос: начинать имя с "\\?\" — это требование дотнета?
Вы файл то хотели создать в каком-то конкретном месте или в сферическом вакууме? Так в сферическом вакууме и TMP создать нельзя — полный путь, так или иначе, надо указывать в любом случае.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>>>Детский сад. cmd.exe => mkdir \\?\C:\COM1 и наслаждаетесь папкой с именем COM1 в корне диска С _>>наводящий вопрос: начинать имя с "\\?\" — это требование дотнета? TK>Вы файл то хотели создать в каком-то конкретном месте или в сферическом вакууме?
напомню, в квоте, которую ты потёр, был мой вопрос — "причём тут дотнет?". он до сих пор в силе.
TK>Так в сферическом вакууме и TMP создать нельзя — полный путь, так или иначе, надо указывать в любом случае.
т.е. CreateDirectory ("tmp", NULL) вернёт ошибку? это в детском саде такому учат?
Здравствуйте, const_volatile, Вы писали:
_>напомню, в квоте, которую ты потёр, был мой вопрос — "причём тут дотнет?". он до сих пор в силе.
Невозможность создать/переименовать файл это проблемы .net — он тут при всем
TK>>Так в сферическом вакууме и TMP создать нельзя — полный путь, так или иначе, надо указывать в любом случае.
_>т.е. CreateDirectory ("tmp", NULL) вернёт ошибку? это в детском саде такому учат?
не гадить где по пало? во многих учат финальный путь то какой будет? или до таких мелочей не опускаетесь?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, const_volatile, Вы писали:
_>>напомню, в квоте, которую ты потёр, был мой вопрос — "причём тут дотнет?". он до сих пор в силе.
TK>Невозможность создать/переименовать файл это проблемы .net — он тут при всем
Конкретно с файлом подобный трюк через дотнет работает без проблем. Т.е. File.Move(string, string) позволяет менять в имени только лишь регистр.
Здравствуйте, Sinatr, Вы писали:
S>Здравствуйте, samius, Вы писали:
S>Оно?
Да, все признаки. Но я не списывал, если речь об этом.
S>Было бы хорошо в спойлер засовывать ответ...
Хотелось бы его выяснить сначала. А то мне кажется что козлит дотнет. А выше было мнение что виноват я.
Если память не изменяет, то Проводник Win9x имел ту же проблему: если хочешь изменить char case папки, то сначала надо было изменить имя на другое, и только затем переименовывать обратно, но уже с нужным char case.
Здравствуйте, samius, Вы писали:
S>>Оно? S>Да, все признаки. Но я не списывал, если речь об этом.
Речь о решении проблемы. Переименуйте папку сначала в "старое имя"+"123", а уже потом все получится.
S>>Было бы хорошо в спойлер засовывать ответ... S>Хотелось бы его выяснить сначала. А то мне кажется что козлит дотнет. А выше было мнение что виноват я.
Было высказано предположение (см. ту же ссылку), что это WinAPI. Хотите найти виноватого (хотя важно ли это?) — проверьте.
Здравствуйте, const_volatile, Вы писали:
_>при чём тут дотнет вообще? если ты не можешь создать файл с именем "COM1" — это тоже дотнет виноват?
Господа, стыд мне, но я не знаю, что за история стоит за невозможность создать папку COM1 на диске с. Не просветите?
УПД. Нашел, благодарю:
Попробуйте, создать в проводнике папку или файл с именем "СОМ1", сделать это не получится. ОС Windows зарезервировала имена от СОМ1 до СОМ9 для работы с СОМ-портами.
Здравствуйте, Mr.Delphist, Вы писали:
MD>Здравствуйте, samius, Вы писали:
MD>Если память не изменяет, то Проводник Win9x имел ту же проблему: если хочешь изменить char case папки, то сначала надо было изменить имя на другое, и только затем переименовывать обратно, но уже с нужным char case.
Что-то тако когда-то было, но к текущей ситуации вряд ли имеет отношение. Win7 позволяет переименовывать по месту, а что было раньше — нет ни желания, ни возможности проверить.