Skip to content

Poco::Path::forDirectory("C:") throws if the path is disk-letter only #4680

@aleks-f

Description

@aleks-f

Discussed in #4573

Originally posted by siren186 May 21, 2024
Is your feature request related to a problem? Please describe.

Poco::Path::forDirectory("G:\\abc\\"); // OK
Poco::Path::forDirectory("G:\\abc"); // OK
Poco::Path::forDirectory("G:\\"); // OK
Poco::Path::forDirectory("G:"); // Poco::PathSyntaxException


// Why not auto add backslash for directories
// If I use Poco::Path, I have to do something else like this:
std::string str = "G:";
if (!str.ends_with('\\'))
{
    str.push_back('\\'); // To ensure Poco::Path not crash for me
}
Poco::Path::forDirectory(str);

Describe the solution you'd like

// If Poco::Path can auto add backslash for me, It can make my code looks more clean.
std::string str = "G:";
Poco::Path::forDirectory(str); // Please do not throw any exception

Describe alternatives you've considered

Or Poco can add some methods just like Windows API PathAddBackslash do

LPWSTR PathAddBackslashW(
  [in, out] LPWSTR pszPath
);

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions