Зачем нам нужен Application.PathSeparator?

В MS Office VBA есть свойство с именем Application.PathSeparator.

Я поддерживаю совместимость, но Office работает на только в Windows и MacOS, и обе платформы используют одинаковую \ разделитель путей.

Когда всегда целесообразно использовать Application.PathSeparator (в отличие от простого жесткого кодирования \ и экономии 22 нажатий клавиш)?


Чтобы было ясно, я действительно считаю важным поддерживать международные различия при размещении кода на международный сайт, такой как Stack Overflow, поэтому я часто буду использовать свойства Application.International, такие как xlDateSeparator и, что более важно, xlDateOrder. (Подробнее об этих здесь )


person ashleedawg    schedule 25.04.2018    source источник
comment
Я задавался тем же вопросом; тем более, что власть имущие решили, что не важно включать свойство Application.ListSeparator в члены объекта Application, что, на мой взгляд, было бы очень полезно..   -  person    schedule 25.04.2018
comment
это ваш счастливый день: Application.International (xlListSeparator)   -  person ashleedawg    schedule 25.04.2018
comment
Я думаю, вы не помните, когда разделитель пути Mac был :   -  person Tim Williams    schedule 25.04.2018
comment
У меня все еще есть машина, которая в некоторых случаях возвращает путь с : на Mac   -  person QHarr    schedule 25.04.2018
comment
@QHarr Так он все еще работает под управлением оригинальной Mac OS?! Работают ли VBA и/или Office на этих машинах? Это подтвердит мое подозрение, что обратная совместимость является причиной, по которой она нам все еще нужна...   -  person ashleedawg    schedule 25.04.2018
comment
Это Mac 2011 года, но операционная система обновлена ​​(поэтому, по-видимому, на самом деле немного старше). Я обнаружил, что проблема с жестким диском связана с ответом на эту stackoverflow.com/questions/48693411/   -  person QHarr    schedule 25.04.2018


Ответы (3)


Этот вопрос основан на неверном предположении, что и Mac OS, и Windows используют один и тот же символ разделителя пути. Это неправильно.

Mac OS X не использует обратную косую черту () в качестве разделителя пути. Он использует косую черту (/), как и другие Unix-подобные операционные системы. В командной строке Mac OS обратная косая черта действует как escape-символ, поэтому использование одного и того же символа на обеих платформах может привести к неожиданным результатам.

person barbecue    schedule 27.01.2020
comment
не уверен, как я пропустил это. Мой вопрос даже включал ссылку на соответствующую вики. Возможно, я ошибся, потому что / на самом деле можно использовать на обеих платформах, хотя технически это не подходит для Windows. - person ashleedawg; 24.06.2021
comment
Попытка написать скрипты, работающие с путями с обеих платформ, — это кошмар. Я бы хотел, чтобы Microsoft использовала косую черту, как это сделали все крутые ребята. - person barbecue; 25.06.2021

В некоторых случаях даже не рекомендуется использовать Application.PathSeparator, потому что, если вы открываете книгу из сетевого пространства, например. OneDrive из браузера, правильным разделителем будет /. Во всяком случае, Application.PathSeparator этого не замечает...

person Andreas Katits    schedule 07.08.2019

Я знаю, что для некоторых компаний/приложений для обмена файлами разделителем пути на общем диске является / вместо . Я видел это совсем недавно (в 2021 году).

person gbo    schedule 04.07.2021