문제

.NET에는 문자열이 구문 적으로 올바른 경로인지 테스트하는 기능이 있습니까? 나는 구체적으로 경로가 실제로 존재하는지 테스트하는 것을 원하지 않습니다.

내 현재 테이크에 대한 내용은 regex입니다.

([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*

성냥:

c:\
bbbb
\\bob/john\
..\..\

거부 :

xy:
c:\\bob
도움이 되었습니까?

해결책

경로가 존재하는지 특별히 테스트하고 싶지 않기 때문에이를 위해 REGEX를 사용하는 것이 좋습니다.

여기 뭔가가 있습니다 Google은 제가 파는 데 도움이되었습니다:

RegEx="^([a-zA-Z]\:|\\\\[^\/\\:*?"<>|]+\\[^\/\\:*?"<>|]+)(\\[^\/\\:*?"<>|]+)+(\.[^\/\\:*?"<>|]+)$"

이것을 system.io.path.getInvalidPathchars () 메소드와 결합하고 Regex가 모든 유효하지 않은 문자를 동적으로 제외시킬 수 있습니다.

다른 팁

System.io.path.getfullpath (Path)는 그것이 존재하는지 확인하지 않고 구문 적으로 올바른 경로가 아닌 경우 예외를 던질 것이라고 생각합니다.

system.io.path 및 getinvalidpathchars () 함수를 사용할 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top