|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Привет. Есть ли метод, который отформатирует путь к каталогу (переданному в виде строки) добавив, или убрав последний слеш? Мне нужно оба варианта - т.е. со слешом, и без слеша. Ни в классе Directory, ни в Path не нашел полезного метода. Можно конечно свой велосипед написать.... Но..... А хотя пожалуй и начну (раз уж в этом конкурсе 16464428 и не поучаствовал почти) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
ЗЫ. Хотелось бы, все таки, именно библиотечную функцию узнать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 19:07 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
В коде, PathToFile и PathToFileWithoutSlash - опечатки. Имелось ввиду, что путь к директории, а не файлу. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 19:08 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Ростигай, такой вариант: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 20:14 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
РостигайВ коде, PathToFile и PathToFileWithoutSlash - опечатки. Имелось ввиду, что путь к директории, а не файлу.А смысл??? Что-то не припомню, чтобы дублирующиеся разделители каталогов вызывали ошибки... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 00:10 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Ростигай, так как написал ты точно делать не надо. При таком подходе ты создаешь три итератора, один делегат, массив char() и всегда новую строку. Слишком много промежуточных объектов ради простой операции. Я бы сделал так: Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 00:28 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
sphinx_mvЧто-то не припомню, чтобы дублирующиеся разделители каталогов вызывали ошибки... Зато иногда дают интересный эффект Path.Combine Method (path1,path2,path3) MSDNpath1 should be an absolute path (for example, "d:\archives" or "\\archives\public"). If path2 or path3 is also an absolute path, the combine operation discards all previously combined paths and resets to that absolute path. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 10:22 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Pallarissphinx_mvЧто-то не припомню, чтобы дублирующиеся разделители каталогов вызывали ошибки... Зато иногда дают интересный эффект Path.Combine Method (path1,path2,path3) MSDNpath1 should be an absolute path (for example, "d:\archives" or "\\archives\public"). If path2 or path3 is also an absolute path, the combine operation discards all previously combined paths and resets to that absolute path. Даже если не учитывать, что это не единственный "эффект" этого метода, это - другой эффект и для другого случая... Кстати, "два слэша в начале пути" - не дублированный разделитель каталогов... Хотя на него визуально похож... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 11:00 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
sphinx_mvДаже если не учитывать, что это не единственный "эффект" этого метода, это - другой эффект и для другого случая... Например какого случая, если я передаю три параметра, по запаре добавив лишний слэш, а в итоге путь урезается до последнего? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 11:20 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Pallarissphinx_mvДаже если не учитывать, что это не единственный "эффект" этого метода, это - другой эффект и для другого случая... Например какого случая, если я передаю три параметра, по запаре добавив лишний слэш, а в итоге путь урезается до последнего?Во-первых, "запара" НЕ является уважительной причиной для ошибок программиста. Тем более, что поведение конкретного метода весьма подробно разжевано в документации. Не солидно. Во-вторых, Вы сослались на "вариант", когда (случайно!) склеиваются абсолютные пути (с учетом корня каталога) - было бы крайне странным ожидать чего-то вменяемого, склеивая @"c:\temp" и @"d:\data". И "два слэша в начале пути" - это тоже абсолютный путь... В-третьих, я все еще про "лишний" слэш в середине или в конце пути каталогов, который НЕ создает никакаих проблем: что так @"c:\temp\\data", что так @"c:\\temp\data\" или вот так @"c:\\temp\\data\\" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 14:21 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
sphinx_mvВо-вторых, Вы сослались на "вариант", когда (случайно!) склеиваются абсолютные пути (с учетом корня каталога) - было бы крайне странным ожидать чего-то вменяемого, склеивая @"c:\temp" и @"d:\data". Пусть будет эксепшн в таком случае В-третьих, я все еще про "лишний" слэш в середине или в конце пути каталогов, который НЕ создает никакаих проблем: что так @"c:\temp\\data", что так @"c:\\temp\data\" или вот так @"c:\\temp\\data\\" Если прога лежит в с:\\temp, а юзеру предлагается указать относительную папку для отчетов, и он впишет "\\data", то после Path.Combine получим известно что ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 14:55 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Pallarissphinx_mvВо-вторых, Вы сослались на "вариант", когда (случайно!) склеиваются абсолютные пути (с учетом корня каталога) - было бы крайне странным ожидать чего-то вменяемого, склеивая @"c:\temp" и @"d:\data". Пусть будет эксепшн в таком случаеНе подскажете, где Вы берете драйвера хрустального шара, чтобы разруливать то, что программист (не говоря уже о пользователе) имел ввиду? :) PallarisВ-третьих, я все еще про "лишний" слэш в середине или в конце пути каталогов, который НЕ создает никакаих проблем: что так @"c:\temp\\data", что так @"c:\\temp\data\" или вот так @"c:\\temp\\data\\" Если прога лежит в с:\\temp, а юзеру предлагается указать относительную папку для отчетов, и он впишет "\\data", то после Path.Combine получим известно чтоИспользовать в ГУЕ стандарные диалоги, значится, не судьба... Правда, потом (почему-то) жалуемся, что "трехколесный лисапет с квадратными колесами" плохо едет... :) А вообще... Если пользователь не знает, что такое "относительный" путь, такому пользователю нефиг заниматься администрированием. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 16:08 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
sphinx_mvНе подскажете, где Вы берете драйвера хрустального шара, чтобы разруливать то, что программист (не говоря уже о пользователе) имел ввиду? :) А в чем сакральный смысл оставлять только последний кусок пути, если в склеивании указано два абсолютных в параметрах? Вопрос риторический ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 16:27 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Задача сама по себе бредовая. На пустом месте создаем себе проблемы и с упорством начинаем с ними бороться. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 21:26 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
МСУ, Может Абдулу надо было брать через шедулер? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2014, 22:16 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Pallarissphinx_mvНе подскажете, где Вы берете драйвера хрустального шара, чтобы разруливать то, что программист (не говоря уже о пользователе) имел ввиду? :) А в чем сакральный смысл оставлять только последний кусок пути, если в склеивании указано два абсолютных в параметрах? Вопрос риторическийВопрос не сильно-то и риторический: что "последним" ввел, то и получил... По любым логическим соображениям. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 02:19 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
МСУЗадача сама по себе бредовая. На пустом месте создаем себе проблемы и с упорством начинаем с ними бороться.Уже, типа, намекалось на бессмысленность задачи... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 02:22 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, Может Абдулу надо было брать через шедулер?И кластер (нод на ...надцать) серверов приложений поднять... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 02:24 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
sphinx_mv, Вот вот, то ли еще будет... зы: Тут много с Украины читает. С праздником вас пацаны !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2014, 12:01 |
|
Путь к каталогу получить С слешом, И без слеша.
|
|||
---|---|---|---|
#18+
МСУЗадача сама по себе бредовая. На пустом месте создаем себе проблемы и с упорством начинаем с ними бороться. Задача то не бредовая. Я вызываю довольно старую утилитку, переписывать ее никто пока не станет - работает. И для нее критично, чтобы при указании каталога, в конце не было последних слешей. Иначе ей башню сносит. Моя же утилита тоже является промежуточным слоем, вызывающим эту утилиту по заданным параметрам, а потом обрабатывает полученные результаты и возвращает их. Я просто хотел сделать обработку входных параметров. Утилита генерит исключение с совершенно ничего не объясняющим сообщением - если ей случайно передать каталог с завершающим слешем. Поэтому я решил сделать проверку сам, и просто убрать лишний слеш, если его передали в параметры. Я не могу гарантировать, что кто-то не вызовет мою утилиту со слешом, не зная про побочный эффект - да и не зачем кому-то знать про дикие детали какой-то утилитки. PS. В дельфи есть методы IncludeTrailingBackslash и ExcludeTrailingBackslash для этого. Я искал подобные методы в BCL, но не нашел. Вот и удивился. Методы то явно полезные и очевидные, бывает и пригождаются. Странно, что их нет в BLC... особенно если учесть, что C# разрабатывал главный разрабатыватель Delphi :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 13:54 |
|
|
start [/forum/topic.php?fid=20&msg=38727326&tid=1402551]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 481ms |
0 / 0 |