Майже в кожній з основних мов програмування є бібліотека для обробки роздільників каталогів для вас. Ви повинні використовувати їх. Це спростить ваш код і запобіжить появі помилок .
На мій досвід, звичайною причиною поєднання рядків, таких як ця, є те, що вони походять з різних джерел. Іноді це різні фрагменти з файлу конфігурації. Іноді це постійне поєднання з аргументом функції. У будь-якому випадку, коли вони надходять з різних джерел, вам слід розглянути декілька можливих випадків, що стосуються розділювачів на кінцях, які слід поєднувати:
- На обох кінцях може бути роздільник:
"images/"
і"/sounds"
- Тільки в одному є роздільник:
"images"
і "/sounds"
або "images/"
і"sounds"
- Ні має роздільник:
"images"
і"sounds"
Факт, що кожна частина походить з іншого джерела, означає, що кожне джерело може мати власні уявлення про те, яких конвенцій слід дотримуватися, якби хтось взагалі задумувався над цим! Що б ви не називали, ваш код не повинен турбуватися з цього приводу . Ваш код повинен вирішувати всі випадки, оскільки хтось порушить вашу умову . Це призведе до того, що буде витрачено витрачений час на дослідження причини помилки та виправлення. У мене було кілька неприємних випадків, коли колега зробив припущення про те, як слід форматувати шляхи у файлі конфігурації, тобто я повинен був шукати код і з'ясувати, що вони очікують (або виправити код).
Більшість основних мов надають спосіб зробити це для вас, який уже обробляє багато випадків:
З цим є застереження. Деякі з них припускають, що провідний роздільник каталогів у другому аргументі посилається на кореневий шлях, і це означає, що перший аргумент слід повністю скинути. Я не знаю, чому це вважається корисним; для мене це просто викликає проблеми. Я ніколи не хотів поєднувати дві ділянки шляху і закінчувати тим, що перша частина випадає. Уважно прочитайте документацію для особливих випадків і, якщо необхідно, напишіть обгортку, яка виконує все, що ви хочете, з ними замість їх спеціального поводження.
Це додатково допомагає, якщо у вас є потреба в підтримці різних операційних систем. Ці класи майже всюди пояснюють вибором правильного роздільника. Бібліотеки, як правило, також мають можливість нормалізувати шляхи, щоб відповідати умовам ОС.
У тому випадку, якщо у вашій мові програмування немає доступної бібліотеки, ви повинні написати метод, який обробляє всі ці випадки та використовувати його в ліберальних і в різних проектах.
Це відноситься до категорії "не робіть припущення" та "використовуйте інструменти, які вам допомагають".