DotNetDupe 4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Loading...
Searching...
No Matches
Path.h
Go to the documentation of this file.
1#pragma once
2#include "Common.h"
3#include "System/Array.h"
4#include "System/String.h"
5
6#if defined(_WIN32)
7#undef GetTempFileName
8#undef GetTempPath
9#endif
10
11namespace DotNetDupe {
12 namespace System {
13 namespace IO {
19 class Path {
20 public:
25 DOTNETDUPE_API static String ChangeExtension(const String& sFilePath, const String& sExtension);
26
30 DOTNETDUPE_API static String Combine(const std::initializer_list<String> sPaths);
31
35 DOTNETDUPE_API static bool EndsInDirectorySeparator(const String& sFilePath);
36
40 DOTNETDUPE_API static bool Exists(const String& sFilePath);
41
45 DOTNETDUPE_API static String GetDirectoryName(const String& sFilePath);
46
50 DOTNETDUPE_API static String GetFileName(const String& sFilePath);
51
55 DOTNETDUPE_API static String GetExtension(const String& sFilePath);
56
61
65 DOTNETDUPE_API static String GetFullPath(const String& sPath);
66
70
74
78 DOTNETDUPE_API static String GetPathRoot(const String& sPath);
79
83
88 DOTNETDUPE_API static String GetRelativePath(const String& sRelativeTo, const String& sPath);
89
93
97
101 DOTNETDUPE_API static bool HasExtension(const String& sPath);
102
106 DOTNETDUPE_API static bool IsPathFullyQualified(const String& sPath);
107
111 DOTNETDUPE_API static bool IsPathRooted(const String& sPath);
112
114 DOTNETDUPE_API static String Join(const std::initializer_list<String> sPaths);
115
117 DOTNETDUPE_API static bool TryJoin(const std::initializer_list<String> sPaths, String& sResult);
118
121
124
127
130
132 DOTNETDUPE_API static char GetPathSeparator();
133 };
134 }
135 }
136}
Provides methods for creating, manipulating, searching, and sorting arrays.
Defines common cross-platform macros, export decorators, and fundamental types.
#define DOTNETDUPE_API
Platform-specific linkage decoration for exporting or importing library symbols.
Definition Common.h:20
High-performance UTF-8 / UTF-16 string manipulation class mirroring .NET System.String.
Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the ba...
Definition Array.h:29
Performs operations on String instances that contain file or directory path information.
Definition Path.h:19
static bool Exists(const String &sFilePath)
Determines whether the given path refers to an existing file or directory on disk.
Definition Path.cpp:87
static String ChangeExtension(const String &sFilePath, const String &sExtension)
Changes the extension of a path string.
Definition Path.cpp:43
static String GetRelativePath(const String &sRelativeTo, const String &sPath)
Returns a relative path from one path to another.
Definition Path.cpp:214
static bool EndsInDirectorySeparator(const String &sFilePath)
Returns a value that indicates whether the specified path ends in a directory separator.
Definition Path.cpp:79
static char GetDirectorySeparatorChar()
Provides a platform-specific character used to separate directory levels in a path.
Definition Path.cpp:357
static Array< char > GetInvalidPathChars()
Gets an array of characters that cannot be present in path names.
Definition Path.cpp:152
static bool TryJoin(const std::initializer_list< String > sPaths, String &sResult)
Attempts to concatenate an array of paths into a single path.
Definition Path.cpp:332
static String GetExtension(const String &sFilePath)
Returns the extension of the specified path string.
Definition Path.cpp:111
static String GetRandomFileName()
Returns a random folder name or file name.
Definition Path.cpp:163
static String TrimEndingDirectorySeparator(const String &sPath)
Trims one trailing directory separator beyond the root of the specified path.
Definition Path.cpp:344
static String GetTempPath()
Returns the path of the current user's temporary folder.
Definition Path.cpp:252
static String GetFullPath(const String &sPath)
Returns the absolute path for the specified path string.
Definition Path.cpp:131
static String Combine(const std::initializer_list< String > sPaths)
Combines an array of strings into a path.
Definition Path.cpp:63
static String GetDirectoryName(const String &sFilePath)
Returns the directory information for the specified path string.
Definition Path.cpp:92
static char GetPathSeparator()
A platform-specific separator character used to separate path strings in environment variables.
Definition Path.cpp:372
static String GetPathRoot(const String &sPath)
Gets the root directory information from the path contained in the specified string.
Definition Path.cpp:187
static char GetAltDirectorySeparatorChar()
Provides a platform-specific alternate character used to separate directory levels.
Definition Path.cpp:362
static Array< char > GetInvalidFileNameChars()
Gets an array of characters that cannot be present in file names.
Definition Path.cpp:140
static String Join(const std::initializer_list< String > sPaths)
Concatenates an array of paths into a single path.
Definition Path.cpp:297
static char GetVolumeSeparatorChar()
Provides a platform-specific volume separator character.
Definition Path.cpp:367
static String GetTempFileName()
Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file.
Definition Path.cpp:247
static bool IsPathFullyQualified(const String &sPath)
Returns a value that indicates whether the specified path is fully qualified.
Definition Path.cpp:278
static String GetFileName(const String &sFilePath)
Returns the file name and extension of the specified path string.
Definition Path.cpp:102
static bool IsPathRooted(const String &sPath)
Returns a value that indicates whether the specified path string contains a root.
Definition Path.cpp:285
static bool HasExtension(const String &sPath)
Determines whether a path includes a file name extension.
Definition Path.cpp:268
static String GetFileNameWithoutExtension(const String &sFilePath)
Returns the file name of the specified path string without the extension.
Definition Path.cpp:121
Represents text as a sequence of UTF-8 code units with culture-invariant operations.
Definition String.h:74