Logo

Programming-Idioms

Remove last character from string p, if this character is the file path separator of current platform.

Note that this also transforms unix root path "/" into the empty string!
Implementation
Rust

Implementation edit is for fixing errors and enhancing with metadata. Please do not replace the code below with a different implementation.

Instead of changing the code of the snippet, consider creating another Rust implementation.

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating material.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
import "fmt"
import "os"
import "strings"
sep := fmt.Sprintf("%c", os.PathSeparator)
p = strings.TrimSuffix(p, sep)
import "fmt"
import "path/filepath"
import "strings"
sep := fmt.Sprintf("%c", filepath.Separator)
p = strings.TrimSuffix(p, sep)
p.chomp!("/")
uses SysUtils;
begin
  p := ExcludeTrailingPathDelimiter(p);
end.
uses LazFileUtils;
begin
  p := ChompPathDelim(p);
end.
import std.string,
import std.path;
p = p.chomp(dirSeparator);
import os
if p.endswith(os.sep):
    p = p[:-1]
use File::Spec qw();
chomp $p, File::Spec->catdir('');
using System.IO;
p.TrimEnd(Path.DirectorySeparatorChar);
if string.sub(p, -1, -1) == "/" then
	p=string.sub(p, 1, -2)
end
p = p.strip_suffix(std::path::is_separator).unwrap_or(p);
import * as path from 'path'
p = p.endsWith(path.sep) ? p.slice(0, -path.sep.length) : p
import Data.List (dropWhileEnd)
import System.FilePath (pathSeparator)
p' = dropWhileEnd (== pathSeparator) p
import 'package:path/path.dart' as path;
if (p.endsWith(path.separator)) p = p.substring(0, p.length - 1);