2012-02-21 15 views

Odpowiedz

32

Do tworzenia ścieżek specyficznych dla systemu operacyjnego i manipulowania nimi należy użyć bezpośrednio pakietu os.PathSeparator i path/filepath.

Alternatywną metodą jest zawsze używanie pakietu '/' i path w całym programie. Pakiet path używa '/' jako separatora ścieżek niezależnie od systemu operacyjnego. Przed otwarciem lub utworzeniem pliku przekonwertuj ścieżkę/-separowany na specyficzny dla systemu operacyjnego ciąg znaków, wywołując filepath.FromSlash(path string). Ścieżki zwracane przez system operacyjny można konwertować na/-oddzielone ścieżki, wywołując filepath.ToSlash(path string).

0

Go ma pakiet path do łączenia i dzielenia ścieżek plików, ale nie trzeba go używać. Go traktuje ukośniki jako uniwersalny separator. "directory/subdirectory/file.txt" zostanie poprawnie otwarty bez względu na system operacyjny.

+1

Czy próbowałeś tego w systemie Windows? –

+0

@Atom Nie posiadam komputera z systemem Windows. [Russ Cox mówi, że traktuje "/" jako separator ścieżek na wszystkich platformach] (http://groups.google.com/group/golang-nuts/browse_thread/thread/5527660c2d860ca3), co wydaje mi się wystarczająco dobre. – Jjed

+1

Russ napisał ten komentarz w dniu 2010-01-09. Od tego czasu zaszły pewne zmiany w sposobie zarządzania ścieżkami: zobacz http://golang.org/doc/devel/weekly.html#2011-03-07 –

13

Użyj path/filepath zamiast path. path jest przeznaczony tylko dla ścieżek oddzielonych ukośnikami (takich jak używane w adresach URL), a path/filepath manipuluje ścieżkami w różnych systemach operacyjnych.

+0

Należy oznaczyć jako prawidłowa odpowiedź, co jest łatwiejsze do zrozumienia - po prostu użyj ścieżki do plików wszędzie i ... zysku! – QtRoS

Powiązane problemy