C#에서 파일 경로를 쓸 때 "C : \"또는 "C : /"와 같은 것을 작성하고 동일한 경로를 얻을 수 있음을 발견했습니다. 어떤 것이 좋습니다? 나는 어딘가에서 /를 사용하는 것이 \ (이스케이프 된 시퀀스로 \를 사용하는 것)보다 권장되었다고 들었다.C에서 폴더 경로에/또는 \ 사용
답변
Windows는 경로 구분 기호를 모두 지원하므로 둘 다 로컬 경로 (네트워크 경로에는 작동하지 않음)에서 작동합니다.
string path = @"C:\" //Look ma, no escape
유일한 경우 내가 혜택을 볼 수 있습니다 : 문제는 Windows의 작업 만이 아닌 표준 경로 구분자 (/)를 사용하여 실제 혜택은 당신이 리터럴 그대로 문자열을 사용할 수 있습니다, 특히 있기 때문에,이 없다는 것입니다/separator를 사용하면 상대 경로로만 작업하고 Windows 및 Linux에서는이 코드를 사용합니다. 그런 다음 "../foo/bar/baz"가 같은 디렉토리를 가리킬 수 있습니다. 그러나이 경우에도 System.IO 네임 스페이스 (Path.DirectorySeparatorChar, Path.Combine)를 남겨 두어 이러한 문제를 해결하는 것이 좋습니다.
"원시 문자열 연산자"는 실제로 "축 어적 문자열 리터럴"입니다. –
답장을 보내 주셔서 감사합니다! – DMan
@Jay : "축 어적 문자열 상수 연산자"? 또는 "축 어적 문자열 리터럴"일까요? –
나는 다음과 같은 C#에서 경로를 쓰기 :
@ "C : 내 \ 경로 \"
이@ 문자가 이스케이프 \ 꺼집니다.
이것은 C# 문제가 아니며 Windows와 관련된 문제입니다. Windows의 경로는 일반적으로 백 슬래시 : C :와 함께 표시됩니다. 제 의견으로는 C#에서 사용해야하는 것입니다. 백 슬래시 문자를 특별히 처리하지 않으려면 @ "C : \"를 사용하십시오.
Path.Combine
을 사용하면 이러한 의미 체계에 대해 걱정할 필요가 없습니다.
Path.Combine이 단지 2 개의 매개 변수를 사용하는 것은 너무 나쁩니다. –
@MikeCole .NET 4.0 이후, 오버로드는'params' 키워드를 통해 임의의 개수의 매개 변수를 취합니다. – nawfal
Poita가 제안한대로 Path.Combine을 사용하면 Path.DirectorySeparatorChar 이상을 사용하십시오.
'Path.PathSeparator'는 PATH 환경 변수에서 경로를 분할하는 문자입니다. Windows에서는';'입니다. 이 답변은'DirectorySeparatorChar'를 참조하도록 업데이트되었습니다. –
수정 해 주셔서 감사 드리며, DirectorySeparatorChar에 대한 게시물을 올리려는 의도였습니다. – SolutionYogi
올바른 해결책입니다. –
- 1. C에서 폴더 압축 #
- 2. Objective C에서 폴더 압축하기
- 3. 폴더 사용 권한?
- 4. 폴더 사용 권한
- 5. 폴더 사용 권한
- 6. 공유 폴더 사용 권한!
- 7. C에서 폴더 압축 및 압축 풀기 #
- 8. C에서 무료() 사용
- 9. C에서 루프의 strtok() 사용?
- 10. C에서 argv 사용?
- 11. Objective C에서 '^'기호 사용
- 12. C에서 단축키 사용 #
- 13. C에서 nullable 형식 사용
- 14. C에서 재귀 사용 #
- 15. Objective C에서 extern 사용
- 16. C에서 프린터 사용
- 17. Objective C에서 CString 사용
- 18. C에서 SHA1 사용
- 19. C# 폴더 사용 권한 저장
- 20. .NET 폴더 사용 권한 문제
- 21. Vista에서 폴더 사용 권한 설정
- 22. Sharepoint 폴더 사용 권한 문제
- 23. PHP 폴더 사용 권한 문제
- 24. lib 폴더 모듈에서 url_for 사용
- 25. pre_order C에서 스택 사용 traversal
- 26. SWIG에서 C에서 Ruby 블록 사용
- 27. C에서 트리 노드 클래스 사용 #
- 28. C에서 가상 함수의 실제 사용 #
- 29. C에서 자동 완성 기능 사용
- 30. Objective-C에서 enum을 사용 하시겠습니까?
이 문제를 지적한 John Saunders에게 감사드립니다. Windows 문제입니다. 나는 /를 사용하는 것이 더 나은/교차 호환성에 좋다고 들었는데, 이것은 Windows를 목표로 삼을 때별로 중요하지 않습니다. – DMan
제목의 버그 : "// or \"이 아닌 "/ or \\"이어야합니다. – sblom
@ sblom- 정확한 차이는 확실치 않지만 작동하므로 고침 : p – DMan