extension
Searches for a file extension separated by a . and returns the string after that ..
Files that end or start with . and have no other . in their name
are considered to have no extension, in which case this returns "".
Examples:
"main.zig"⇒".zig""src/main.zig"⇒".zig"".gitignore"⇒""".image.png"⇒".png""keep."⇒".""src.keep.me"⇒".me""/src/keep.me"⇒".me""/src/keep.me/"⇒".me"The returned slice is guaranteed to have its pointer within the start and end pointer address range ofpath, even if it is length zero.
Function parameters
Parameters
- path:[]const u8
Type definitions in this namespace
Types
Returns if the given byte is a valid path separator
Functions
- isSep
- Returns if the given byte is a valid path separator
- join
- Naively combines a series of paths with the native path separator.
- joinZ
- Naively combines a series of paths with the native path separator and null terminator.
- resolve
- On Windows, this calls `resolveWindows` and on POSIX it calls `resolvePosix`.
- resolveWindows
- This function is like a series of `cd` statements executed one after another.
- resolvePosix
- This function is like a series of `cd` statements executed one after another.
- dirname
- Strip the last component from a file path.
- relative
- Returns the relative path from `from` to `to`.
- extension
- Searches for a file extension separated by a `.` and returns the string after that `.`.
- stem
- Returns the last component of this path without its extension (if any):
- ComponentIterator
- A path component iterator that can move forwards and backwards.
- fmtAsUtf8Lossy
- Format a path encoded as bytes for display as UTF-8.
- fmtWtf16LeAsUtf8Lossy
- Format a path encoded as WTF-16 LE for display as UTF-8.
= '\\'
Values
- sep_windows
- = '\\'
- sep_posix
- = '/'
- sep
- = switch (native_os) { .windows, .uefi => sep_windows, else => sep_posix, }
- sep_str_windows
- = "\\"
- sep_str_posix
- = "/"
- sep_str
- = switch (native_os) { .windows, .uefi => sep_str_windows, else => sep_str_posix, }
- delimiter_windows
- = ';'
- delimiter_posix
- = ':'
- delimiter
- = if (native_os == .windows) delimiter_windows else delimiter_posix
Source
Implementation
pub fn extension(path: []const u8) []const u8 {
const filename = basename(path);
const index = mem.lastIndexOfScalar(u8, filename, '.') orelse return path[path.len..];
if (index == 0) return path[path.len..];
return filename[index..];
}