[C#] 경로 유효성 체크 - IsValidPath

2023. 3. 23. 16:15·프로그래밍/C#

 

경로 유효성 체크
IsValidPath

 

설치파일 등에서 경로 체크시에 사용된다.

 

/// <summary>
/// 경로가 유효한지 체크한다.
/// </summary>
/// <param name="path">경로</param>
private bool IsValidPath(string path)
{
	// 경로 길이 체크
	if (path.Length < 3)
		return false;

	// 드라이브 문자열 체크
	Regex driveCheck = new Regex(@"^[a-zA-Z]:\\$");
	if (driveCheck.IsMatch(path.Substring(0, 3)) == false)
		return false;

	// 경로 이름에 사용할 수 없는 문자가 있는지 체크
	string invalidPathChars = new string(Path.GetInvalidPathChars());
	invalidPathChars += @":/?*" + "\"";

	Regex regexInvalidPath = new Regex("[" + Regex.Escape(invalidPathChars) + "]");
	if (regexInvalidPath.IsMatch(path.Substring(3, path.Length - 3)))
		return false;

	// 실제 경로의 드라이브가 존재하는지 체크 
	try
	{
		DirectoryInfo dir = new DirectoryInfo(Path.GetFullPath(path));
		if (dir.Exists == false)
		{
			string drive = System.IO.Path.GetPathRoot(path);
			if (Directory.Exists(drive) == false)
			{
				return false;
			}
		}
	}
	catch
	{
		return false;
	}

	return true;
}

 

반응형
저작자표시 비영리 (새창열림)

'프로그래밍 > C#' 카테고리의 다른 글

[C#] Winform/Devexpress GridView DoubleClick Event  (0) 2023.06.29
[C#] Winform/WPF 디자인모드(DesignMode) 구분하기  (0) 2023.06.28
[C#] 레지스트리 등록, 조회, 삭제  (0) 2023.03.23
[C#] 참조 없이 인스턴스 생성하는 방법  (0) 2023.03.21
[C#] winform MessageBox Topmost로 띄우기  (0) 2023.03.06
'프로그래밍/C#' 카테고리의 다른 글
  • [C#] Winform/Devexpress GridView DoubleClick Event
  • [C#] Winform/WPF 디자인모드(DesignMode) 구분하기
  • [C#] 레지스트리 등록, 조회, 삭제
  • [C#] 참조 없이 인스턴스 생성하는 방법
큐레이트
큐레이트
저의 일상을 기록하는 블로그입니다.
  • 큐레이트
    큐레이트의 기록
    큐레이트
  • 전체
    오늘
    어제
    • 분류 전체보기 (187) N
      • 국내여행 (37)
        • 애견여행 (33)
        • 맛집여행 (2)
      • 프로그래밍 (82) N
        • C# (24)
        • Python (24) N
        • Flutter (5)
        • .NET (4)
        • ASP (7)
        • Html (5)
        • Tomcat (2)
        • typescript (3)
        • etc (8)
      • 일상생활 (68)
        • 다이어트일지 (67)
        • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 복이랑스마트스토어
    • 복이랑블로그
  • 공지사항

    • 블로그 소개
  • 인기 글

  • 태그

    자동매매
    다이어트 일지
    식단관리
    iis
    일상생활
    자동화
    Flutter
    티스토리챌린지
    다이어트일지
    다이어트
    입력폼
    파이썬
    애견동반여행
    국내여행
    식단
    제주도 애견동반
    오블완
    제주도애견동반여행
    애견여행
    제주도
    DevExpress
    Python
    체중기록
    애견동반
    pt
    HTML
    운동일지
    FastAPI
    오운완
    C#
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
큐레이트
[C#] 경로 유효성 체크 - IsValidPath
상단으로

티스토리툴바