Prawie każdy główny język programowania ma bibliotekę do obsługi separatorów katalogów. Powinieneś je wykorzystać. Uprości to Twój kod i zapobiegnie błędom .
Z mojego doświadczenia wynika, że typowym powodem łączenia takich ciągów jest to, że pochodzą one z różnych źródeł. Czasami różni się od pliku konfiguracyjnego. Czasami jest to ciągłe łączenie z argumentem funkcji. We wszystkich przypadkach, gdy pochodzą one z różnych źródeł, należy rozważyć kilka różnych możliwych przypadków dotyczących separatorów na końcach, które należy połączyć:
- Oba końce mogą mieć separator:
"images/"
i"/sounds"
- Tylko jeden ma separator:
"images"
i "/sounds"
lub "images/"
i"sounds"
- Żaden nie ma separatora:
"images"
i"sounds"
Fakt, że każda część pochodzi z innego źródła, oznacza, że każde źródło może mieć własne wyobrażenia o konwencjach, których należy przestrzegać, jeśli ktoś w ogóle o tym pomyśli! Cokolwiek wywołuje Twój kod, nie powinno się o to martwić . Twój kod powinien obsłużyć wszystkie sprawy, ponieważ ktoś naruszy twoją konwencję . Spowoduje to, że stracisz czas na zbadanie przyczyny błędu i naprawę. Miałem kilka nieprzyjemnych okazji, w których współpracownik zakładał, jak należy sformatować ścieżki w pliku konfiguracyjnym, co oznacza, że musiałem poszukać kodu i dowiedzieć się, czego się spodziewali (lub naprawić kod).
Większość głównych języków udostępnia dla ciebie metodę, która już obsługuje wiele przypadków:
Jest z nimi zastrzeżenie. Wiele z nich wydaje się zakładać, że wiodący separator katalogu w drugim argumencie odnosi się do ścieżki katalogu głównego i że oznacza to, że pierwszy argument powinien zostać całkowicie usunięty. Nie wiem, dlaczego uważa się to za przydatne; dla mnie to po prostu powoduje problemy. Nigdy nie chciałem łączyć dwóch części ścieżki i kończyć zrzucaniem pierwszej części. Przeczytaj uważnie dokumentację dotyczącą specjalnych przypadków, a jeśli to konieczne, napisz opakowanie, które robi to, co chcesz, zamiast ich specjalnej obsługi.
Pomaga to dodatkowo, jeśli potrzebujesz obsługi różnych systemów operacyjnych. Klasy te niemal powszechnie uwzględniają wybór właściwego separatora. Biblioteki zwykle mają sposób na znormalizowanie ścieżek, aby pasowały również do konwencji systemu operacyjnego.
W przypadku, gdy Twój język programowania nie ma łatwo dostępnej biblioteki, powinieneś napisać metodę, która obsługuje wszystkie te przypadki i używać jej swobodnie w różnych projektach.
Należy to do kategorii „nie rób założeń” i „używaj narzędzi, które ci pomogą”.