2013-09-05 13 views
7

Jak wyświetlić listę dysków w Haskell? Chciałbym dostać litery dysków w systemie Windows i uzyskać "/" w systemie Linux. Czy to możliwe? Nigdzie nie mogłem go znaleźć.Napędy list Haskell w systemie Windows

+0

Wygląda na to, że chcesz ['GetLogicalDriveStrings'] (http://msdn.microsoft.com/en-us/library/aa364975%28VS.85%29.aspx) , ale nie jest zawarty w ['System.Win32.File'] (http://hackage.haskell.org/packages/archive/Win32/2.2.2.0/doc/html/System-Win32-File.html). –

+0

Czy jest jakiś sposób to zrobić bez Win32? Pytam, ponieważ mogę skompilować go tylko w oknach i stracę przenośność ... – remdezx

+0

Nie, że znam i wątpię w to. Możesz jednak użyć 'CPP' pragmas. –

Odpowiedz

4
import System.Process 
c = do 
    res <- readProcess "wmic" ["logicaldisk","get","caption"] "" 
    --print res 
    -- clean up the output 
    print $ init $ map (take 2) $ drop 1(lines res) 
+0

Tego właśnie szukałem! Dziękuję Ci! – remdezx

1

można spróbować tylko wyliczając wszystkie 26 możliwych liter dysków i widząc jeśli one istnieją użyciu doesDirectoryExist z System.Directory. I wierzę w, które działałoby ...

+0

Wydaje się, że znacznie lepiej niż tworzenie wrapperów win32, dziękuję! – remdezx