PathCombine 통합 작업

This commit is contained in:
2025-09-05 20:43:59 +09:00
parent 513d841f80
commit 1d19e21bb2
8 changed files with 56 additions and 85 deletions

View File

@@ -5,55 +5,27 @@ namespace CommonLibrary
{
public static class Extensions
{
//TODO: 제거후 PathCombine 에 통합
public static string PathCombineL(params string[] paths)
/// <summary>경로를 일관된 포맷으로 변경</summary>
/// <param name="paths">경로 리스트들</param>
/// <returns>폴더 구분자가 / 로 일관되게 변경된 경로</returns>
public static string PathCombine(params string[] paths)
{
var directorySeparatorChar = System.IO.Path.AltDirectorySeparatorChar.ToString();
return PathCombine(directorySeparatorChar, paths).Replace("\\", "/");
}
if (paths == null || paths.Length == 0)
return string.Empty;
//TODO: 제거예정
public static string PathCombineW(params string[] paths)
{
var directorySeparatorChar = System.IO.Path.DirectorySeparatorChar.ToString();
return PathCombine(directorySeparatorChar, paths).Replace("/", "\\");
}
static string PathCombine(string directorySeparator, params string[] paths)
{
if (paths.Length == 0) return string.Empty;
var path = new StringBuilder();
path.Append(paths[0]);
for (int i = 1; i < paths.Length; i++)
var sb = new StringBuilder();
for (int i = 0; i < paths.Length; i++)
{
if (path.ToString().Substring(path.Length - 1, 1) == directorySeparator)
{
if (paths[i].Substring(0, 1) == directorySeparator)
{
path.Append(paths[i].Substring(1, paths[i].Length - 1));
}
else
{
path.Append(paths[i]);
}
}
else
{
if (paths[i].Substring(0, 1) == directorySeparator)
{
path.Append(paths[i]);
}
else
{
path.Append(directorySeparator);
path.Append(paths[i]);
}
}
}
if (string.IsNullOrEmpty(paths[i]))
continue;
return path.ToString();
var part = paths[i].Replace("\\", "/").Trim('/');
if (sb.Length > 0)
sb.Append('/');
sb.Append(part);
}
return sb.ToString();
}
public static bool IsDefault<T>(ref this T data) where T : struct