C \ # 에서 파일 경 로 를 분석 하 는 작업

4734 단어
프로그램 에서 파일 작업 은 매우 흔히 볼 수 있 지만 파일 작업 은 파일 의 경로 가 필요 하고 파일 의 경 로 를 일련의 작업 을 할 수 밖 에 없다. 예 를 들 어 이미 알 고 있 는 경로 가 디 렉 터 리 인지 파일 인지, 도로 의 힘 이 파일 인지 판단 하면 이 문서 의 이름 이 무엇 인지, 파일 의 확장자 가 무엇 인지 등 이다.C \ # 에 서 는 파일 의 경 로 를 하나의 클래스 로 추상 화하 지 않 고 파일 경로 가 일반적인 문자열 임 을 나타 낸다.파일 경로 에 대한 작업, 예 를 들 어 파일 이름 을 가 져 오 려 면 문자열 을 캡 처 하거나 정규 표현 식 을 사용 하여 얻 을 수 있 습 니 다.
사실. NET 라 이브 러 리 에는 파일 이나 디 렉 터 리 경 로 를 나타 내 는 string 에 대한 전문 적 인 기능 류 System. IO. Path 가 있 습 니 다.Path 를 이용 하여 파일 경 로 를 진행 하 는 방법 을 소개 합 니 다.
주어진 경로 나 파일 이름 이 합 법 적 인지 판단 합 니 다.
Path. GetInvalidFileNameChars () 이 방법 은 파일 이름 에 나타 날 수 없 는 문 자 를 가리 키 는 char [] 를 되 돌려 줍 니 다.

/// 
  ///          
  /// 
  ///    
  /// ture,  ;false,  
  public bool validFileName(string fileName)
  {
   if(!string.IsNullOrEmpty(fileName))
   {
    char [] errChars = Path.GetInvalidFileNameChars() ;
    foreach(char ch in errChars)
    {
     if(fileName.Contains(ch.ToString()))
      return false ;
    }
   }
   else
   {
    return false ;
   }
   return true ;
  }

파일 이름 이 불법 이 라면 다음 방법 으로 불법 문 자 를 제거 할 수 있 습 니 다.

/// 
  ///            
  /// 
  /// 
  ///       
  public string fixedFileName(string fileName)
  {
   char[] errChars = Path.GetInvalidFileNameChars();
   StringBuilder fileNameBuilder = new StringBuilder(fileName) ;
   foreach(char ch in errChars)
   {
    fileNameBuilder.Replace(ch.ToString(),string.Empty);
   }
   return fileNameBuilder.ToString();
  }

마찬가지 로 Path. GetInvalidPathChars () 를 사용 하여 디 렉 터 리 경로 에 나타 나 지 않 는 문 자 를 가 져 와 디 렉 터 리 경로 가 합 법 적 인지 판단 하고 불법 디 렉 터 리 경 로 를 수정 합 니 다.
제 시 된 경로 가 디 렉 터 리 경로 인지 파일 경로 인지 판단 합 니 다.
제 시 된 경로 가 이미 존재 하 는 지 확인 할 수 있다 면 디 렉 터 리. Exists () 와 File. Exists () 를 사용 하여 경로 가 디 렉 터 리 인지 파일 인지 판단 할 수 있 습 니 다.주어진 경로 가 존재 하 는 지 확인 할 수 없습니다. Path. GetFileName () 을 사용 하여 경로 에 있 는 파일 이름 을 가 져 올 수 있 습 니 다. 파일 이름 을 가 져 올 수 있 으 면 경로 가 파일 경로 이 고 그렇지 않 으 면 경로 입 니 다.디 렉 터 리 경로 의 마지막 문 자 는 '\' 로 끝나 야 한 다 는 것 을 설명 합 니 다.
병합 경로
일부 경로 의 다른 부분 은 서로 다른 곳 에서 얻 는 것 이다. 이것 은 이 부분 을 조합 하여 완전한 경 로 를 형성 해 야 한다.조합 과정 에서 '\' 에 대한 처리 가 불가피 합 니 다. 이 때 는 Path. Combine () 을 사용 하여 경로 의 다른 부분 을 조합 할 수 있 습 니 다.Path. Combine () 은 다양한 형식의 과부하 가 있어 다양한 수 요 를 만족시킨다.설명 이 필요 한 것 은 Path. Combine () 을 사용 하여 비합법적 인 파일 이름 이나 경로 이름 을 받 아들 이지 않 고 합병 할 때 어느 부분 이 절대 경로 에서 시작 되면 합병 작업 은 이 절대 경로 에서 시작 하여 이전에 합 병 된 경 로 를 버 리 는 것 으로 초기 화 합 니 다.예 를 들 면:

string[] paths = {@"d:\archives", "2001", "e:\\", "images"};
   string fullPath = Path.Combine(paths);
   //fullPath   e:\images
   Console.WriteLine(fullPath);
fullPath e:\images

파일 이름, 확장자, 파일 디 렉 터 리 등 경로 의 특정 부분 가 져 오기

   Path.GetFileName(path);//      
   Path.GetFileNameWithoutExtension(path); //     ,      
   Path.GetExtension(path) ; //        
   Path.GetDirectoryName(path) ; //       
   Path.GetPathRoot(path) ;//       

더 구체 적 인 건 MSDN 을 참고 하 셔 도 됩 니 다.  http://msdn.microsoft.com/zh-cn/library/system.io.path_methods.aspx
Path 기타 기능 함수
  • Path. GetRandomFileName () 무 작위 파일 이름 이나 디 렉 터 리 이름 가 져 오기
  • Path. GetTempFileName () 디스크 에 있 는 유일한 이름 의 0 바이트 임시 파일 을 만 들 고 이 파일 의 전체 경 로 를 되 돌려 줍 니 다
  • Path. GetTempPath () 현재 사용자 의 임시 디 렉 터 리 경로 가 져 오기
  • Path. HasExtension () 파일 확장자 가 포함 되 어 있 는 지 확인
  • 프로그램 과 연 결 된 경로 가 져 오기
  • System. Diagnostics. Process. GetCurrentProcess (). MainModule. FileName 파일 이름 을 포함 하여 모듈 의 전체 경 로 를 가 져 옵 니 다.
  • System. Environment. CurrentDirectory 가 현재 프로그램 작업 디 렉 터 리 의 완전 한정 경 로 를 가 져 오 거나 설정 합 니 다
  • System. IO. directory. GetCurrentDirectory () 는 프로그램의 현재 작업 디 렉 터 리 를 가 져 오 거나 설정 합 니 다. 프로그램의 시작 디 렉 터 리 가 아니 라 프로그램 이 마지막 으로 조작 한 디 렉 터 리 입 니 다.

  • 환경 변수 관련
    System. Environment. GetEnvironment Variable () 을 사용 하면 환경 변수 와 관련 된 파일 경 로 를 가 져 올 수 있 습 니 다. 예 를 들 어:
  • System. Environment. GetEnvironment Variable ("windir") 운영 체제 가 있 는 디 렉 터 리 가 져 오기
  • System. Environment. GetEnvironment Variable ("INCLUDE") 헤더 파일 이 있 는 디 렉 터 리 가 져 오기
  • System. Environment. GetEnvironment Variable ("TMP") 임시 디 렉 터 리 가 져 오기
  • System. Environment. GetEnvironment Variable ("Path") 에서 Path 환경 변수 에 포 함 된 파일 디 렉 터 리 가 져 오기
  • 자 연 스 럽 게 System. Environment. SetEnvironment Variable () 을 사용 하면 환경 변 수 를 설정 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기