Quasi tutti i principali linguaggi di programmazione hanno una libreria per gestire i separatori di directory per te. Dovresti sfruttarli. Questo semplifica il tuo codice e previene i bug .
Nella mia esperienza, la solita ragione per combinare stringhe come questa è che provengono da fonti diverse. A volte sono pezzi diversi da un file di configurazione. A volte è una costante combinazione con un argomento di funzione. In tutti i casi, quando provengono da fonti diverse, è necessario considerare diversi possibili casi riguardanti i separatori alle estremità da combinare:
- Entrambe le estremità potrebbero avere un separatore:
"images/"
e "/sounds"
- Solo uno ha un separatore:
"images"
e "/sounds"
o "images/"
e "sounds"
- Nessuno dei due ha un separatore:
"images"
e "sounds"
Il fatto che ciascuna parte provenga da una fonte diversa significa che ciascuna fonte potrebbe avere le proprie idee su quali convenzioni seguire, se qualcuno ci avesse pensato affatto! Qualunque cosa stia chiamando il tuo codice non dovresti preoccuparti di questo . Il tuo codice dovrebbe gestire tutti i casi perché qualcuno violerà la tua convenzione . Ciò comporterà uno spreco di tempo per indagare sulla causa di un errore e fare una correzione. Ho avuto diverse spiacevoli occasioni in cui un collega ha assunto un'ipotesi su come i percorsi dovrebbero essere formattati in un file di configurazione, il che significa che dovevo dare la caccia al codice e capire cosa si aspettavano (o correggere il codice).
La maggior parte delle lingue principali fornisce un metodo per fare ciò che già gestisce molti dei casi:
C'è un avvertimento con questi. Alcuni di questi sembrano presupporre che un separatore di directory principale nel secondo argomento faccia riferimento a un percorso root e che questo significhi che il primo argomento debba essere completamente eliminato. Non so perché questo è considerato utile; per me, causa solo problemi. Non ho mai voluto combinare due porzioni di percorso e finire con la prima parte lasciata cadere. Leggi attentamente la documentazione per casi speciali e, se necessario, scrivi un wrapper che fa ciò che vuoi con questi invece della loro gestione speciale.
Ciò aiuta ulteriormente se hai bisogno di supportare diversi sistemi operativi. Queste classi spiegano quasi ubiquamente la scelta del separatore corretto. Le librerie di solito hanno anche un modo per normalizzare i percorsi per adattarsi alle convenzioni del sistema operativo.
Nel caso in cui il tuo linguaggio di programmazione non disponga di una libreria prontamente disponibile, dovresti scrivere un metodo che gestisca tutti questi casi e utilizzarlo liberamente e attraverso i progetti.
Questo rientra nella categoria di "non fare ipotesi" e "usa strumenti che ti aiutano".