mirror of
https://github.com/Xevion/easy7zip.git
synced 2026-01-31 04:24:11 -06:00
4.49 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
fd8b1d78b4
commit
7038848692
@@ -9,13 +9,6 @@ namespace NWindows {
|
||||
namespace NFile {
|
||||
namespace NName {
|
||||
|
||||
static const wchar_t kDiskDelimiter = L':';
|
||||
|
||||
/*
|
||||
static bool IsCharAPrefixDelimiter(wchar_t c)
|
||||
{ return (c == kDirDelimiter || c == kDiskDelimiter); }
|
||||
*/
|
||||
|
||||
void NormalizeDirPathPrefix(CSysString &dirPath)
|
||||
{
|
||||
if (dirPath.IsEmpty())
|
||||
@@ -34,59 +27,7 @@ void NormalizeDirPathPrefix(UString &dirPath)
|
||||
}
|
||||
#endif
|
||||
|
||||
namespace NPathType
|
||||
{
|
||||
EEnum GetPathType(const UString &path)
|
||||
{
|
||||
if (path.Length() <= 2)
|
||||
return kLocal;
|
||||
if (path[0] == kDirDelimiter && path[1] == kDirDelimiter)
|
||||
return kUNC;
|
||||
return kLocal;
|
||||
}
|
||||
}
|
||||
|
||||
void CParsedPath::ParsePath(const UString &path)
|
||||
{
|
||||
int curPos = 0;
|
||||
switch (NPathType::GetPathType(path))
|
||||
{
|
||||
case NPathType::kLocal:
|
||||
{
|
||||
int posDiskDelimiter = path.Find(kDiskDelimiter);
|
||||
if(posDiskDelimiter >= 0)
|
||||
{
|
||||
curPos = posDiskDelimiter + 1;
|
||||
if (path.Length() > curPos)
|
||||
if(path[curPos] == kDirDelimiter)
|
||||
curPos++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NPathType::kUNC:
|
||||
{
|
||||
int curPos = path.Find(kDirDelimiter, 2);
|
||||
if(curPos < 0)
|
||||
curPos = path.Length();
|
||||
else
|
||||
curPos++;
|
||||
}
|
||||
}
|
||||
Prefix = path.Left(curPos);
|
||||
SplitPathToParts(path.Mid(curPos), PathParts);
|
||||
}
|
||||
|
||||
UString CParsedPath::MergePath() const
|
||||
{
|
||||
UString result = Prefix;
|
||||
for(int i = 0; i < PathParts.Size(); i++)
|
||||
{
|
||||
if (i != 0)
|
||||
result += kDirDelimiter;
|
||||
result += PathParts[i];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#ifdef _WIN32
|
||||
|
||||
const wchar_t kExtensionDelimiter = L'.';
|
||||
|
||||
@@ -108,4 +49,6 @@ void SplitNameToPureNameAndExtension(const UString &fullName,
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
}}}
|
||||
|
||||
+2
-18
@@ -17,26 +17,10 @@ void NormalizeDirPathPrefix(CSysString &dirPath); // ensures that it ended with
|
||||
void NormalizeDirPathPrefix(UString &dirPath); // ensures that it ended with '\\'
|
||||
#endif
|
||||
|
||||
namespace NPathType
|
||||
{
|
||||
enum EEnum
|
||||
{
|
||||
kLocal,
|
||||
kUNC
|
||||
};
|
||||
EEnum GetPathType(const UString &path);
|
||||
}
|
||||
|
||||
struct CParsedPath
|
||||
{
|
||||
UString Prefix; // Disk or UNC with slash
|
||||
UStringVector PathParts;
|
||||
void ParsePath(const UString &path);
|
||||
UString MergePath() const;
|
||||
};
|
||||
|
||||
#ifdef _WIN32
|
||||
void SplitNameToPureNameAndExtension(const UString &fullName,
|
||||
UString &pureName, UString &extensionDelimiter, UString &extension);
|
||||
#endif
|
||||
|
||||
}}}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user