fixed bug with directories with trailing (back)slashes in wxPathExists

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-07-08 23:18:09 +00:00
parent a49123d60d
commit 2e5b3a4634

View File

@@ -1160,11 +1160,18 @@ bool wxDirExists(const wxString& dir)
// does the path exists? (may have or not '/' or '\\' at the end)
bool wxPathExists(const wxChar *pszPathName)
{
/* Windows API returns -1 from stat for "c:\dir\" if "c:\dir" exists
* OTOH, we should change "d:" to "d:\" and leave "\" as is. */
// Windows fails to find directory named "c:\dir\" even if "c:\dir" exists,
// so remove all trailing backslashes from the path - but don't do this for
// the pathes "d:\" (which are different from "d:") nor for just "\"
wxString strPath(pszPathName);
if ( wxEndsWithPathSeparator(pszPathName) && pszPathName[1] != wxT('\0') && pszPathName[1] != wxT(':') )
strPath.Last() = wxT('\0');
while ( wxEndsWithPathSeparator(strPath) )
{
size_t len = strPath.length();
if ( len == 1 || strPath[len - 1] == _T(':') )
break;
strPath.Truncate(len - 1);
}
wxStructStat st;