Разделитель пути в windows
От: Abyx Россия  
Дата: 18.09.11 11:26
Оценка:
Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?
In Zen We Trust
Re: Разделитель пути в windows
От: tofox2 Россия  
Дата: 18.09.11 11:49
Оценка:
Здравствуйте, Abyx, Вы писали:

A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?


из вики

операционных системах DOS и Windows фирмы Microsoft и их аналогах других разработчиков, обратная косая используется для разделений имён директорий (каталогов) при указании пути к файлу. Прямая косая, применяемая для этого в Unix не могла быть использована в MS-DOS, потому что уже была задействована для указания ключей командной строки (оставшегося в наследство от CP/M, где MS-DOS команда "dir /w" писалась как "dir/w").

Re: Разделитель пути в windows
От: dilmah США  
Дата: 18.09.11 11:56
Оценка:
в дополнение: afaik в функциях типа fopen таки можно писать прямые слеши -- они автоматом преобразуются в обратные.
Re: Разделитель пути в windows
От: quwy  
Дата: 18.09.11 12:22
Оценка: 1 (1) +1 -1 :))) :))
Здравствуйте, Abyx, Вы писали:

A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?

Мне в строковых переменных не приходится ничего такого писать:
StrVar:= 'C:\Windows\System32';

И все работает правильно
Re: Разделитель пути в windows
От: _nn_ www.nemerleweb.com
Дата: 18.09.11 13:03
Оценка: 1 (1) +1
Здравствуйте, Abyx, Вы писали:

A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?


Пользуйтесь правильными языками и этого не нужно будет делать
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Разделитель пути в windows
От: alexsoff Россия  
Дата: 18.09.11 13:15
Оценка: +2 -1
A>>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?

__>Пользуйтесь правильными языками и этого не нужно будет делать


Выносите это в настройки приложения ибо не фиг харкодить пути
Re: Разделитель пути в windows
От: tlp  
Дата: 18.09.11 14:02
Оценка:
Здравствуйте, Abyx, Вы писали:

A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш,

так сложилось исторически, еще со времен DOS

A>из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?

в C-подобных языках символ "\" имеет специальное значение (escape character), если встречается в стркоровых литералах, (например \n, \0xFF, \077 и т д). Чтобы в строке использовать сивол сам по себе, его нужно удваивать
Re[3]: Разделитель пути в windows
От: Roman Odaisky Украина  
Дата: 18.09.11 15:43
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>Выносите это в настройки приложения ибо не фиг харкодить пути


А в этом как раз проблемы нет. /dev/null, /usr/lib/libastral.so, /etc/astralrc. Ну и относительные пути тоже как-то записывать надо.
До последнего не верил в пирамиду Лебедева.
Re: Разделитель пути в windows
От: Lloyd Россия  
Дата: 18.09.11 17:17
Оценка: :))) :)
Здравствуйте, Abyx, Вы писали:

A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?


Коллеги, объясните зачем для эскейпинга в строках используется обратный слеш, из за чего в строковых литералах для путей в файловой истеме приходится писать "пути\\через\\два\\слеша" ?
Re[2]: Разделитель пути в windows
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.09.11 09:17
Оценка:
Здравствуйте, Lloyd, Вы писали:

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


A>>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?


L>Коллеги, объясните зачем для эскейпинга в строках используется обратный слеш, из за чего в строковых литералах для путей в файловой истеме приходится писать "пути\\через\\два\\слеша" ?


Ну когда делали Си (в 71-73), никому из разумных в голову не пришло, что какой-то безумец через 10 лет будет использовать бэкслэш для путей...

А внутренний квотинг в строке никогда не был лучшим путём, он и без Windows имеет свои проблемы (излишняя грамматичность).
The God is real, unless declared integer.
Re[3]: Разделитель пути в windows
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.09.11 09:21
Оценка:
Здравствуйте, alexsoff, Вы писали:

A>>>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?


__>>Пользуйтесь правильными языками и этого не нужно будет делать ;)


A>Выносите это в настройки приложения ибо не фиг харкодить пути :maniac:


Даже если никто не хардкодит пути как таковые, можно хардкодить имена подкаталогов (и вот это как раз то чему обычно делать нечего в настройках приложений — лучше их фиксировать, чем давать переделывать во что угодно и потом грести проблемы от этого). Внутренняя структура хранилища — дело хранилища в целом.

А вот что имеет смысл делать — так это не зашивать фиксированный разделитель пути, а пользоваться библиотеками.
Ибо завтра придётся переделывать под iOS или Android, в которых разделитель пути не придуман по принципу "сделаем через зад, лишь бы отцепились", или же под внезапно ожившие VMS или OS/400 :)
The God is real, unless declared integer.
Re[4]: Разделитель пути в windows
От: alexsoff Россия  
Дата: 19.09.11 09:59
Оценка:
Здравствуйте, netch80, Вы писали:


N>Даже если никто не хардкодит пути как таковые, можно хардкодить имена подкаталогов (и вот это как раз то чему обычно делать нечего в настройках приложений — лучше их фиксировать, чем давать переделывать во что угодно и потом грести проблемы от этого).

Ага, особенно если в подкаталогах хранятся данные, к которым идет постоянный on-line доступ, вот хотели мы засунуть на ssd, а тут нет -разработчики "удружили".
Или более типичные ошибки , программа установлена в Program Files и пишет в свой под каталог данные — приходится для нее постоянно из админа запускать
Re[5]: Разделитель пути в windows
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.09.11 10:06
Оценка:
Здравствуйте, alexsoff, Вы писали:

N>>Даже если никто не хардкодит пути как таковые, можно хардкодить имена подкаталогов (и вот это как раз то чему обычно делать нечего в настройках приложений — лучше их фиксировать, чем давать переделывать во что угодно и потом грести проблемы от этого).

A>Ага, особенно если в подкаталогах хранятся данные, к которым идет постоянный on-line доступ, вот хотели мы засунуть на ssd, а тут нет -разработчики "удружили".

Мнэээ... слово "обычно" означает программы, коих >99% и у которых таких проблем не бывает... а вообще пользуйтесь симлинками:)

A>Или более типичные ошибки , программа установлена в Program Files и пишет в свой под каталог данные — приходится для нее постоянно из админа запускать :maniac:


Ну это уже клинический случай.
The God is real, unless declared integer.
Re[2]: Разделитель пути в windows
От: Pzz Россия https://github.com/alexpevzner
Дата: 19.09.11 10:18
Оценка:
Здравствуйте, dilmah, Вы писали:

D>в дополнение: afaik в функциях типа fopen таки можно писать прямые слеши -- они автоматом преобразуются в обратные.


Это и в венде и в MS-DOS'е сделано на уровне системных вызовов.
Re: Разделитель пути в windows
От: Pzz Россия https://github.com/alexpevzner
Дата: 19.09.11 10:19
Оценка: :)
Здравствуйте, Abyx, Вы писали:

A>Коллеги, объясните зачем в windows разделитель пути это обратный слеш, из за чего в строковых литералах приходится писать "пути\\через\\два\\слеша" ?


Пишите через прямые, так тоже работает.

Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого?
Re[4]: Разделитель пути в windows
От: Pzz Россия https://github.com/alexpevzner
Дата: 19.09.11 10:22
Оценка:
Здравствуйте, netch80, Вы писали:

N>А вот что имеет смысл делать — так это не зашивать фиксированный разделитель пути, а пользоваться библиотеками.

N>Ибо завтра придётся переделывать под iOS или Android, в которых разделитель пути не придуман по принципу "сделаем через зад, лишь бы отцепились", или же под внезапно ожившие VMS или OS/400

Хм. У iOS и Android'а вроде как уних под капотом. Соответственно, и разделители пути юниксовские. А что до VMS и OS/400, я не уверен, что у них вообще такая штука есть.

А что за эти волшебные библиотеки, о которых идет речь?
Re[3]: Разделитель пути в windows
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.09.11 10:25
Оценка:
Здравствуйте, Pzz, Вы писали:

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


D>>в дополнение: afaik в функциях типа fopen таки можно писать прямые слеши -- они автоматом преобразуются в обратные.


Pzz>Это и в венде и в MS-DOS'е сделано на уровне системных вызовов.


Вот если бы можно было системным вызовом менять возвращаемое и для всяких GetCurrentDirectory(), был бы смысл.
А так — непонятный костыль.

Pzz>Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого? :-)


Это зомби ;)

Pzz>Хм. У iOS и Android'а вроде как уних под капотом. Соответственно, и разделители пути юниксовские.


Дык.

Pzz> А что до VMS и OS/400, я не уверен, что у них вообще такая штука есть.


В VMS двоеточие, в OS/400, кажется, точка (не уверен)

Pzz>А что за эти волшебные библиотеки, о которых идет речь? :-)


Да хоть самому написать;) но вот например в питоне есть готовые функции типа "склеить две части пути".
The God is real, unless declared integer.
Re[2]: Разделитель пути в windows
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 19.09.11 10:56
Оценка: :)
Здравствуйте, Pzz, Вы писали:

Pzz>Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого?


Главное, чтобы двойные слеши в письменной речи появляться не начали

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Разделитель пути в windows
От: Sni4ok  
Дата: 19.09.11 11:22
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Пользуйтесь правильными языками и этого не нужно будет делать


или правильной системой
Re[2]: Разделитель пути в windows
От: ДимДимыч Украина http://klug.org.ua
Дата: 19.09.11 14:59
Оценка: 1 (1) +2 -1 :)
Здравствуйте, Pzz, Вы писали:

Pzz>Вы мне лучше объясните, как это в письменную речь проникло? Не замечали, что теперь народ уже в человеческих, а не компьютерных, текстах частенько использует обратный слеш заместо прямого?


Раскладку переключать не надо.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.