UString GetCorrectFsPath(const UString &path) { UString res = GetCorrectFileName(path); #ifdef _WIN32 if (!IsSupportedName(res)) res = (UString)L"_" + res; #endif return res; }
UString GetCorrectFullFsPath(const UString &path) { UStringVector parts; SplitPathToParts(path, parts); for (int i = 0; i < parts.Size(); i++) { UString &s = parts[i]; #ifdef _WIN32 while (!s.IsEmpty() && s[s.Length() - 1] == '.') s.Delete(s.Length() - 1); if (!IsSupportedName(s)) s = (UString)L"_" + s; #endif } return MakePathNameFromParts(parts); }
void MakeCorrectPath(UStringVector &pathParts) { for (int i = 0; i < pathParts.Size();) { UString &s = pathParts[i]; s = GetCorrectFileName(s); if (s.IsEmpty()) pathParts.Delete(i); else { #ifdef _WIN32 if (!IsSupportedName(s)) s = (UString)L"_" + s; #endif i++; } } }
static void CorrectUnsupportedName(UString &name) { if (!IsSupportedName(name)) name.InsertAtFront(L'_'); }