구문 적으로 올바른 경로를 테스트하십시오
-
08-07-2019 - |
문제
.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 () 함수를 사용할 수 있습니까?
제휴하지 않습니다 StackOverflow