1// Windows/FileName.cpp 2 3#include "StdAfx.h" 4 5#include "Windows/FileName.h" 6#include "Common/Wildcard.h" 7 8namespace NWindows { 9namespace NFile { 10namespace NName { 11 12void NormalizeDirPathPrefix(CSysString &dirPath) 13{ 14 if (dirPath.IsEmpty()) 15 return; 16 if (dirPath.ReverseFind(kDirDelimiter) != dirPath.Length() - 1) 17 dirPath += kDirDelimiter; 18} 19 20#ifndef _UNICODE 21void NormalizeDirPathPrefix(UString &dirPath) 22{ 23 if (dirPath.IsEmpty()) 24 return; 25 if (dirPath.ReverseFind(wchar_t(kDirDelimiter)) != dirPath.Length() - 1) 26 dirPath += wchar_t(kDirDelimiter); 27} 28#endif 29 30const wchar_t kExtensionDelimiter = L'.'; 31 32void SplitNameToPureNameAndExtension(const UString &fullName, 33 UString &pureName, UString &extensionDelimiter, UString &extension) 34{ 35 int index = fullName.ReverseFind(kExtensionDelimiter); 36 if (index < 0) 37 { 38 pureName = fullName; 39 extensionDelimiter.Empty(); 40 extension.Empty(); 41 } 42 else 43 { 44 pureName = fullName.Left(index); 45 extensionDelimiter = kExtensionDelimiter; 46 extension = fullName.Mid(index + 1); 47 } 48} 49 50}}} 51