That's the Pathie Project.
Latest searches: Most Frequently asked questions in an encyclopedia: Most Frequently asked questions in dictionaries: Thank you for your voice.
They have contributed to improving the overall standard of our services.
PATHY-cpp: A small C++ cross-platform Unicode repository for pathmanagement
That'?s the Pathie-Projekt. The goal is to make a C++ lib available, which meets all needs of pathnaming and file naming without having to care about the basic plattform. This means that it is a file name libraries that allows to generate platform-independent file name handlers with particular consideration of Unicode pathnames.
At the moment Linux and Windows are currently suported, the latter via MSYS2 GCC. Pathie's sources are C++98 compliant. It is assumed on UNIX that the system will support POSIX.1-2001. Windows Vista or higher is the least Windows Vista support. UTF-8 is the main Unicode coding used by the whole planet.
No. A small Redmond based firm resisted the Temptation and used UTF-16LE instead, making cross-platform Unicode pathway management a real sleep. There are many web pages claiming that Unicode pathnames are simple to use on Windows, but in fact only if you set "development for Windows" as "development with MSVC", Microsoft's own custom C/C++-compiler with non standardised UTF-16LE file name management ports.
As the pathy archive was designed with a strong emphasis on MinGW and cross compilation from Linux to Windows, it does not experience this inconvenience. It is designed to free the programmers from the load of dealing with the various codings used for file names by concentrating their programming interface on UTF-8, regardless of the platforms used.
So if you use UTF-8 as your favorite encode in your application (see the UTF8 Everywhere website to see why you should do this), pathy will be most useful to you because it will convert all file system encodings to UTF-8 in a transparent way in its open port.
Similarly, any pathnames you give to the libraries are accepted as UTF-8 and decoded transparent to the file system encoders before the operating system's method of request. Obviously, there are also express converting features available if you need a real character encoded in the original format or need to build a vector encoded from a character encoded in the original format.
Consider the straightforward challenge of getting all the kids in a folder that have Unicode file names. If you do this by hand, you must constantly switch between UTF-8 and UTF-16. You can do the following with pathie: std::vector children= your_path. children(); Done. Getting the superordinate folder is quite simple: Pathie::Path yourpath("foo/bar/baz"); Pathie::Path parental and = thispath.
parentpathie (); But pathie is much more than just an abstract of different file path encoding. It' a path name tampering tool that allows you to do things like find the superordinate folder, expand in relation to absolut path, split a file name into base name, dir name and extend, and so on.
Refer to the main pathology::Path document to find out what you can do. Pathie::Path p("foo/bar/../baz"); Or my own favorite: Pathie::Path p1("/tmp/foo/bar"); Pathie::Path p2("/tmp/bar/foo"); It also provides you with frequently used directories like the user's config folder or the current file name.
However, if you work directly with the Windows API or other outside source code library, you can get the natural view from a pathname or build a pathname from the new one. Pathia won't stand in your way. This example builds from and transforms to the Windows natively, which is UTF-16LE: wchar_t* ulf16 = Win32ApiCall(); std::wstring native_utf16 = hypath. native(); under UNIX these method work with regular character string (std::string instead of std::wstring) in the file system coding used.
Most of the time it will be UTF-8, but some older computers can still use something like ISO-8859-1, in this case it will be different. You can use two categories Pathie::Tempdir and Pathie::Tempfile if you need to work with temp or directory data. You can use TempEntry::path() to get to the path entity pointing to the item you create.