2012-08-31 11 views
0

libevent를 사용하여 간단한 http 서버를 구성했습니다. 자원 (내 경우에는 폴더)에 액세스하는 방법은Windows에서 올바른 시스템 경로를 얻는 방법

http://serverAddress:port/path/to/resouce/ 

디코딩 된 URL을 사용하여 추출되는 자원의 경로입니다./사용자/vickey/폴더 : 그것은 뭔가이

http://severAddress:port/home/vickey/folder 

처럼하지만, 윈도우 $ 요청에있을 것입니다 요청으로 리눅스에서 잘 작동 /C로 디코딩 된 URL에 결과

http://serverAddress:port/c:/users/vickey/folder 

입니다. 문제를 해결하기 위해 선행 슬래시를 수동으로 제거 할 수 있습니다. 그러나 내가이 클래스의 일부 구현이 있는지 궁금 해서요. native() 및 relative_path()를 사용하여 시도했다. 감사.

답변

0

당신이 묻는대로 확실히 할 수 있지만 다른 접근 방법을 제안합니다. RESOURCE_BASE_PATH라고 할 수있는 서버의 구성 등록 정보를 만드는 방법은 어떻습니까? URL에서 수신 된 자원 경로는 RESOURCE_BASE_PATH에 추가되어 완전한 경로를 작성합니다.

이것은 FTP 및 HTTP 서버 등의 표준입니다. Windows에서는 "c :"로 설정할 수 있으며 Linux에서는 공백으로 두어 기본값은 "/"입니다.

또한 Windows에서 슬래시 (\)는 유닉스 (/)의 슬래시와 다릅니다.