The operator </> is an alias for `combine`, which the documentation says:
Combine two paths, if the second path isAbsolute, then it returns the second. In this case, "/" is absolute, so it is returned. If you wish to add a trailing path separator, use `addTrailingPathSeparator`. Erik On Mon, Dec 5, 2011 at 15:53, dokondr <doko...@gmail.com> wrote: > Balazs, thanks for your comments! > The first comment works just fine. > With </> operator I get this: > > Main System.Environment.Executable System.FilePath> "/abc" </> "/" > "/" > > Instead of getting "/abc/" I get "/". What am I doing wrong? > > On Mon, Dec 5, 2011 at 6:03 PM, Balazs Komuves <bkomu...@gmail.com> wrote: >> >> >> Two small comments: >> >> 1) This should work on Windows too, if you just leave out the word "Posix" >> from the source: >> import System.FilePath (splitFileName) >> >> 2) In general when dealing with paths, use the </> operator (from >> System.FilePath) >> instead of ++ "/" ++ >> >> Balazs >> >> >> On Mon, Dec 5, 2011 at 1:44 PM, dokondr <doko...@gmail.com> wrote: >>> >>> This is how I finally solved this problem for POSIX complaint system: >>> >>> -- >>> -- TestRun >>> -- >>> module Main where >>> import System.Cmd (rawSystem) >>> import System.Directory (getCurrentDirectory) >>> import System.Environment.Executable (ScriptPath(..), getScriptPath) >>> import System.FilePath.Posix (splitFileName) >>> >>> main = do >>> >>> path <- getMyPath >>> putStrLn $ "myPath = " ++ path >>> let cmdLine = path ++ "args.sh" >>> rawSystem cmdLine ["iphone", "test-twitts.txt"] >>> >>> {-- >>> data ScriptPath Source >>> >>> Constructors: >>> Executable FilePath it was (probably) a proper compiled executable >>> RunGHC FilePath it was a script run by runghc/runhaskell >>> Interactive we are in GHCi >>> --} >>> >>> getMyPath = do >>> curDir <- getCurrentDirectory -- from System.Directory >>> scriptPath <- getScriptPath -- from System.Environment.Executable >>> let path = getMyPath' scriptPath curDir >>> return path >>> >>> getMyPath' (Executable path) _ = fst (splitFileName path) >>> getMyPath' (RunGHC path) _ = fst (splitFileName path) >>> getMyPath' Interactive curDir = curDir++"/" >>> >>> > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe