Path::GetDirectoryName Method (String^)
Returns the directory information for the specified path string.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- path
-
Type:
System::String^
The path of a file or directory.
Return Value
Type: System::String^Directory information for path, or null if path denotes a root directory or is null. Returns String::Empty if path does not contain directory information.
| Exception | Condition | ||
|---|---|---|---|
| ArgumentException | The path parameter contains invalid characters, is empty, or contains only white spaces. | ||
| PathTooLongException |
The path parameter is longer than the system-defined maximum length. |
In most cases, the string returned by this method consists of all characters in the path up to but not including the last DirectorySeparatorChar or AltDirectorySeparatorChar. If the path consists of a root directory, such as "c:\", null is returned. Note that this method does not support paths using "file:". Because the returned path does not include the DirectorySeparatorChar or AltDirectorySeparatorChar, passing the returned path back into the GetDirectoryName method will result in the truncation of one folder level per subsequent call on the result string. For example, passing the path "C:\Directory\SubDirectory\test.txt" into the GetDirectoryName method will return "C:\Directory\SubDirectory". Passing that string, "C:\Directory\SubDirectory", into GetDirectoryName will result in "C:\Directory".
For a list of common I/O tasks, see Common I-O Tasks.
The following code example demonstrates using the GetDirectoryName method on a Windows-based desktop platform.
String^ filePath = "C:\\MyDir\\MySubDir\\myfile.ext"; String^ directoryName; int i = 0; while (filePath != nullptr) { directoryName = Path::GetDirectoryName(filePath); Console::WriteLine("GetDirectoryName('{0}') returns '{1}'", filePath, directoryName); filePath = directoryName; if (i == 1) { filePath = directoryName + "\\"; // this will preserve the previous path } i++; } /* This code produces the following output: GetDirectoryName('C:\MyDir\MySubDir\myfile.ext') returns 'C:\MyDir\MySubDir' GetDirectoryName('C:\MyDir\MySubDir') returns 'C:\MyDir' GetDirectoryName('C:\MyDir\') returns 'C:\MyDir' GetDirectoryName('C:\MyDir') returns 'C:\' GetDirectoryName('C:\') returns '' */
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
