2012-12-08 4 views
0

집안에 Perl 웹 응용 프로그램 (Windows OS)이 하나 있습니다. 사용자 기본 파일 탐색기를 사용하여 응용 프로그램에서 공유 폴더를 열 수있는 가장 좋은 방법을 찾아야합니다. 필자는 Perl 모듈이나 크로스 브라우저 메소드 (사용자가 어떤 브라우저를 사용할 것인지 모르겠습니다)를 선호합니다.웹 응용 프로그램의 공개 공유 폴더

나는 file:///으로 시도했지만 더 나은 것을 찾고 있습니다.

+0

어떻게 "공유 폴더"를 정의합니까? 어떤 OSes 및 파일 관리자를 타겟팅합니까? 파이어 폭스는 HTTP가 제공되는 문서의'file : //'-URL 다음에 나타나지 않는다는 것을 기억하십시오. (익명) FTP는 가장 휴대용 솔루션 일 수 있지만 매우 제한적입니다. 또한 공유 자원을 여는 데있어 * 의도 *를 이해하는 것이 좋습니다. – amon

답변

0

달성하고자하는 것이 삼바 공유에있는 파일에 액세스하는 것과 같은 것이라면 UNC 경로 (\ yourserver \ shared_folder \ filename)를 사용하는 것이 좋습니다. 실제 파일을 가리키면 Windows의 해당 확장명과 연결된 기본 프로그램에 의해 열립니다. 폴더를 가리키면 시작 -> 실행 대화 상자에 UNC 경로를 입력 한 것처럼 Windows 탐색기가 해당 폴더에서 열립니다.

공유 폴더가 "영화"공유 인 "phobos"서버에있는 경우 perl에서 다음과 같이 표시됩니다.

system('\\phobos\movies'); # mind the quoting!! 

당신은 같은 것을 사용하는 것이 윈도우의 기본 프로그램에서 파일을 열고하려고 한 경우 :

system('\\phobos\movies\my_cool_movie.avi'); # mind the quoting!! 

는 질문에 무슨 뜻인가요?

+0

작은 따옴표를 사용하더라도 이스케이프 코드는 \\ → \입니다. 따라서 백 슬래시는 악마의 길이며 Windows조차도 슬래시를 인식합니다. – amon

+0

@amon, true,하지만 그건 질문 외에도 있습니다. 이 사용자는 분명히 Windows에 있으며 슬래시 또는 슬래시 두 배로 혼란스러워 보였습니다. 나는 그가 접근하기를 좋아하는 경로를 가진 간단한 시스템 호출이 창에서 작동해야한다고 지적하기를 원했다. 그는 아마도 어쨌든 하드 코드 된 경로를 사용하지 않을 것이고 어쨌든 그가 사용하는 변수를 보간하기 위해 반드시 큰 따옴표를 사용해야 할 것입니다. 'system ("\\\\ phobos \\ movies");이 트릭을해야합니다. – TiWu

+1

BTW, 정방향 슬래시는 리소스가 브라우저에서 액세스 할 때만 작동합니다. Windows는'\\'을 전달할 때'http : //'를 의미한다고 생각합니다. 예를 들어,'\\ wdtvlive'가 작동하지만'// wdtvlive'가 브라우저를 열고 오류 페이지를 보여줍니다. – TiWu

관련 문제