C \ # 파일 경로 조작

8388 단어 C#
프로그램 에서 파일 작업 은 매우 흔히 볼 수 있 지만 파일 작업 은 파일 의 경로 가 필요 하고 파일 의 경 로 를 일련의 작업 을 할 수 밖 에 없다. 예 를 들 어 이미 알 고 있 는 경로 가 디 렉 터 리 인지 파일 인지, 도로 의 힘 이 파일 인지 판단 하면 이 문서 의 이름 이 무엇 인지, 파일 의 확장자 가 무엇 인지 등 이다.C \ # 에 서 는 파일 의 경 로 를 하나의 클래스 로 추상 화하 지 않 고 파일 경로 가 일반적인 문자열 임 을 나타 낸다.파일 경로 에 대한 작업, 예 를 들 어 파일 이름 을 가 져 오 려 면 문자열 을 캡 처 하거나 정규 표현 식 을 사용 하여 얻 을 수 있 습 니 다.
사실. NET 라 이브 러 리 에는 파일 이나 디 렉 터 리 경 로 를 나타 내 는 string 에 대한 전문 적 인 기능 류 System. IO. Path 가 있 습 니 다.Path 를 이용 하여 파일 경 로 를 진행 하 는 방법 을 소개 합 니 다.
  • 제 시 된 경로 나 파일 이름 이 합 법 적 인지 여 부 를 판단 합 니 다. GetInvalid FileNameChars () 이 방법 은 파일 이름 에 나타 나 지 않 는 문 자 를 char [] 로 되 돌려 줍 니 다.
    /// <summary>
    
            ///          
    
            /// </summary>
    
            /// <param name="fileName">   </param>
    
            /// <returns>ture,  ;false,  </returns>
    
            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 ;
    
            }


  • 파일 이름 이 불법 이 라면 다음 방법 으로 불법 문 자 를 제거 할 수 있 습 니 다.
    /// <summary>
    
            ///            
    
            /// </summary>
    
            /// <param name="fileName"></param>
    
            /// <returns>      </returns>
    
            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 () 를 사용 하여 디 렉 터 리 경로 에 나타 나 지 않 는 문 자 를 가 져 와 디 렉 터 리 경로 가 합 법 적 인지 판단 하고 불법 디 렉 터 리 경 로 를 수정 합 니 다.
  • 제 시 된 경로 가 디 렉 터 리 경로 인지 파일 경로 인지 판단 할 수 있 습 니 다. 제 시 된 경로 가 이미 존재 하 는 지 확인 할 수 있다 면 Directory. 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 () 을 사용 하면 환경 변 수 를 설정 할 수 있 습 니 다
  • 좋은 웹페이지 즐겨찾기