2013-09-05 52 views
7

Tôi có thể liệt kê các ổ đĩa trong Haskell bằng cách nào? Tôi muốn lấy các ký tự ổ đĩa trên Windows và chỉ nhận được "/" trên Linux. Có thể không? Tôi không thể tìm thấy nó ở bất cứ đâu.Ổ đĩa danh sách Haskell trong Windows

+0

Dường như bạn muốn ['GetLogicalDriveStrings'] (http://msdn.microsoft.com/en-us/library/aa364975%28VS.85%29.aspx) , nhưng nó không được bao bọc trong ['System.Win32.File'] (http://hackage.haskell.org/packages/archive/Win32/2.2.2.0/doc/html/System-Win32-File.html). –

+0

Có cách nào để thực hiện điều đó nếu không có Win32? Tôi hỏi vì tôi có thể biên dịch nó chỉ trên các cửa sổ và tôi sẽ mất tính di động ... – remdezx

+0

Không phải là tôi biết, và tôi nghi ngờ nó. Bạn có thể sử dụng 'CPP' pragmas. –

Trả lời

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

Đó là những gì tôi đang tìm kiếm! Cảm ơn bạn! – remdezx

1

Bạn có thể thử chỉ liệt kê tất cả 26 ký tự ổ đĩa có thể và nhìn thấy nếu chúng tồn tại sử dụng doesDirectoryExist từ System.Directory. Tôi tin rằng sẽ hoạt động ...

+0

Nó có vẻ tốt hơn nhiều so với làm cho wrappers win32, cảm ơn bạn! – remdezx

Các vấn đề liên quan