wxString wxFileName::GetFullPath( wxPathFormat format ) const
{
- (void)format;
- return GetPathWithSep() + GetFullName();
+ format = GetFormat( format );
+
+ wxString ret;
+ if (format == wxPATH_DOS)
+ {
+ for (size_t i = 0; i < m_dirs.GetCount(); i++)
+ {
+ ret += m_dirs[i];
+ ret += '\\';
+ }
+ }
+ else
+ if (format == wxPATH_UNIX)
+ {
+ for (size_t i = 0; i < m_dirs.GetCount(); i++)
+ {
+ ret += m_dirs[i];
+ ret += '/';
+ }
+ }
+ else
+ {
+ for (size_t i = 0; i < m_dirs.GetCount(); i++)
+ {
+ ret += m_dirs[i];
+ ret += ':';
+ }
+ }
+
+ ret += m_name;
+
+ if (!m_ext.IsEmpty())
+ {
+ ret += '.';
+ ret += m_ext;
+ }
+
+ return ret;
}
// Return the short form of the path (returns identity on non-Windows platforms)
wxString wxFileName::GetShortPath() const
{
-#if defined(__WXMSW__) && defined(__WIN32__)
+#if defined(__WXMSW__) && defined(__WIN32__) && !defined(__WXMICROWIN__)
wxString path(GetFullPath());
wxString pathOut;
DWORD sz = ::GetShortPathName(path, NULL, 0);
}
if (ok)
return pathOut;
- else
- return path;
+
+ return path;
#else
return GetFullPath();
#endif
// Return the long form of the path (returns identity on non-Windows platforms)
wxString wxFileName::GetLongPath() const
{
-#if defined(__WXMSW__) && defined(__WIN32__)
+#if defined(__WXMSW__) && defined(__WIN32__) && !defined(__WXMICROWIN__)
wxString path(GetFullPath());
wxString pathOut;
bool success = FALSE;
-#if wxUSE_DYNLIB_CLASS
+ // VZ: this code was disabled, why?
+#if 0 // wxUSE_DYNLIB_CLASS
typedef DWORD (*GET_LONG_PATH_NAME)(const wxChar *, wxChar *, DWORD);
static bool s_triedToLoad = FALSE;
if ( !s_triedToLoad )
{
s_triedToLoad = TRUE;
-#if 0
wxDllType dllKernel = wxDllLoader::LoadLibrary(_T("kernel32"));
if ( dllKernel )
{
}
}
}
-#endif
}
if (success)
return pathOut;
-#endif
- // wxUSE_DYNLIB_CLASS
+#endif // wxUSE_DYNLIB_CLASS
if (!success)
{
pathOut = wxEmptyString;
wxArrayString dirs = GetDirs();
- dirs.Add(GetName());
+ dirs.Add(GetFullName());
size_t count = dirs.GetCount();
size_t i;
}
}
}
+
return pathOut;
#else
return GetFullPath();
#if defined(__WXMSW__) || defined(__WXPM__)
format = wxPATH_DOS;
#elif defined(__WXMAC__)
- format = wxPATH_UNIX; // that's the way the rest of wx' code works right now
+ format = wxPATH_MAC;
#else
format = wxPATH_UNIX;
#endif