Manipulační cesty k souborům multiplatformní

hlasů
13

Dělat nějaké samostatné třídy C ++ GNU existují, které manipulují cesty multiplatformní? Moje aplikace stavět na Windows a Linux. Naše konfigurační soubory odkazují na jiný soubor v samostatném adresáři. Chtěl bych být schopen číst cestu pro další konfigurační soubor do třídy, která by pracovala na obou Linux nebo Windows.

Která třída by nabídnout nejmenší stopu přeložit cesty používat buď systém? dík

Položena 23/09/2008 v 18:28
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
13

pokusit zvýšit :: filesystem

Odpovězeno 23/09/2008 v 18:33
zdroj uživatelem

hlasů
10

Pokud nepoužíváte absolutní cesty, není třeba překládat vůbec - Windows automaticky převádí lomítka do zpětných lomítek, takže pokud budete používat relativní cesty se dopředu oddělovače lomítko cesty, budete zlatá. Opravdu byste se měli vyhnout absolutní cesty, pokud je to vůbec možné.

Odpovězeno 23/09/2008 v 18:33
zdroj uživatelem

hlasů
5

Filesystem knihovna v boost vám pravděpodobně pomůže.

Odpovězeno 23/09/2008 v 18:33
zdroj uživatelem

hlasů
0

Existuje mnoho způsobů, IMHO správná odpověď je přepracovat svůj program, aby se zabránilo manipulaci s cestami. I vysláni odpověď zde: https://stackoverflow.com/a/40980510/2345997 která je relevantní.

způsoby:

  1. Přidat možnost příkazového řádku, který umožňuje uživateli zadat cestu v otázce namísto ji četl z konfiguračního souboru.
  2. Přidat možnost příkazového řádku, takže uživatel může zadat základní cestu. Cesty v konfiguračním souboru bude interpretován jako umístěny pod tímto základním cestě.
  3. Rozdělit konfigurační soubor do tří. Jeden soubor bude mít zkříženou konfiguraci platformy, jiný soubor bude mít okna pouze konfigurace a finální soubor bude mít pouze Linux konfiguraci. Pak může uživatel určit správnou cestu pro Windows i Linux. Na oknech váš program bude číst konfigurační soubor cross-platform a okna pouze konfigurační soubor. Na Linuxu to bude číst soubor cross-platform a pouze konfigurační soubor Linuxu.
  4. Přidat předzpracování do svého konfiguračního souboru rozebrat. To vám umožní mít jeden konfigurační soubor, kde si uživatel může provést váš program ignorovat některé řádky v souboru v závislosti na které OS je program spuštěn. Proto bude uživatel moci zadat cestu k souboru dvakrát. Jednou pro Linux, a jednou pro Windows.
  5. Změnit návrh tak, že soubory jsou vždy umístěny ve stejném adresáři jako spustitelný soubor - pak uživatel zadá pouze názvy souborů v konfiguračním souboru, nikoli cesty k souborům.
  6. Použijte jednoduchou funkci, která přepne „/“ na „\“. Potom dokument pro uživatele, že musí specifikovat cesty Linux cest a tato transformace bude aplikována pro Windows.
  7. Vytvořte si vlastní cestu mini-jazyk pro tento a dokumentovat ji uživateli. Např: „/“ - určuje oddělovač adresářů, {} kořen - expanduje do kořenového souborového systému, {} cwd - expanduje do aktuálního adresáře, {app} - expanduje na cestě do vaší aplikace atd ... Pak uživatel může určit soubor cesty, jako je: {kořenového} /myfiles/bob.txt na obou platformách.
  8. Některé cesty bude fungovat na obou platformách. Např: relativní cesty jako ../my files / bill.txt. Omezte aplikaci pouze pracovat s těmito cestami. Dokumentovat toto omezení a jak se vaše žádost zpracovává cesty k uživateli.
Odpovězeno 06/12/2016 v 09:13
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more