[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#] 참조 없이 인스턴스 생성하는 방법
큐레이트
큐레이트
저의 일상을 기록하는 블로그입니다.
  • 큐레이트
    큐레이트의 기록
    큐레이트
  • 전체
    오늘
    어제
    • 분류 전체보기 (193)
      • 국내여행 (37)
        • 애견여행 (33)
        • 맛집여행 (2)
      • 프로그래밍 (85)
        • C# (24)
        • Python (24)
        • Flutter (5)
        • .NET (4)
        • ASP (7)
        • Next.js (3)
        • Html (5)
        • Tomcat (2)
        • typescript (3)
        • etc (8)
      • 일상생활 (71)
        • 다이어트일지 (70)
        • 기타 (1)
  • 블로그 메뉴

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

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

    • 블로그 소개
  • 인기 글

  • 태그

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

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.