2009-10-19 1 views
3

웹에서 exe를 실행하고 싶습니다. 오히려 임시 폴더에 다운로드합니다. 거기에서 실행하고 삭제하십시오 (또는 OS가 그렇게하도록하십시오). 권한 부여 문제에 폭탄을 넣지 말고, 존재하는 파일을 무시하는 등의 조치를 취하는 방법이 있습니까?EDITED : 임시 파일을 어디에서 어떻게 다운로드해야합니까?

감사합니다.

편집 데스크탑 응용 프로그램에서 작성되었습니다. BTW, 나는 많은 추측을하지만, 나는 단지 받아 들여지는 것이 궁금합니다.

Path.GetTempFile을 사용할 수 있다는 것을 알고 있지만, 이미 나를 위해 파일을 만들었습니다.이 파일은 일부 db에 추가하고 계속 추적 할 수 있다고 생각하게 만듭니다. 그래서 삭제하고 대체 할 수 없습니다. 내 파일로.

나는 Path.TempDirectory (또는 이와 비슷한 것)과 Path.RandomFileName을 사용할 수 있지만 후자는 파일 이름에 임의의 확장자를 추가하는 반면 exe가 필요하지만 분명히 매우 쉽게 해결할 수 있지만 이상하게 보입니다. 나에게 MS가 이미 우리를 위해 쓴 것을 재 작성하는 것 같다.

+3

대부분의 경우 웹 브라우저는 웹에서 실행 파일을 실행할 수 없게됩니다. 또한, 절대 ​​* 항상 웹에서 실행 파일을 실행하는 것처럼 * 사용자에게 인상적인 인상을주고 싶지는 않습니다. 99.999 %의 사용자가 응용 프로그램을 다른 응용 프로그램과 차별화하는 방법을 이해하지 못하고 결과적으로 한 가지만 기억합니다. "응용 프로그램을 실행하라는 메시지가 나타나면 예를 누릅니다." 즉시 실패. –

답변

0

신뢰할 수있는 애플릿은 사용자의 파일 시스템에서 재생할 수 있으므로 해당 경로로 이동할 수 있습니다. C# 조언을 요청하고 있지만 언어가 유연한 경우 자바 환경에서 작동합니다.

2

자동 업데이트 Windows 서비스를 작성할 필요가 있으며 실행하기 전에 최신 설치 프로그램을 임시 위치에 다운로드해야하는 비슷한 신발을 사용하고 있습니다. 이 분야의 모범 사례에 관한 정보는 많지 않으므로 ASP.NET/C#이 제공 한 "도구"에 의존했습니다.

Path.GetTempPath() 및 다운로드 한 파일 이름을 사용하여 다운로드 한 파일의 전체 경로를 작성했습니다. 여기에 몇 가지 예제 코드는 다음과 같습니다

string url = "http://www.domain.com/install.exe"; 
string path = Path.GetTempPath(); 
string fileName = Path.GetFileName(url); 
string tmpFile = Path.Combine(path, fileName); 

결론이 나는 당신의 추측이 System.IO.Path 온도를 사용하는 생각입니다 * 기능입니다 합리적인 접근 방법은 - 내가 그것을 지원하는 모든 문서를 찾을 수 있지만.

+0

Beeing 완벽 주의자, 그런 일반 이름이 임시 폴더에 이미 존재한다면 어떨까요? – Letterman

+0

음, 고유 한 파일 이름을 유지하도록 노력해야합니다. Path.GetTempFileName() 또는 Path.GetRandomFileName()을 사용하여 파일 이름을 생성 할 수 있습니다. 전자는 실제로 확장자가 .tmp 인 파일을 생성하므로 필요에 맞게 파일을 변경해야합니다. 후자는 폴더 이름 또는 파일 이름으로 사용할 수있는 암호 학적으로 강하고 임의의 문자열을 반환합니다. 도움이되기를 바랍니다. –

+0

예. 괴롭히길 원하지만 여기에 질문이 있습니다. GetRandomFileName은 임의의 확장명을 가진 파일 이름을 반환합니다. 쉽게 도트를 삭제하고 EXE를 추가 할 수 있습니다. 선택의 여지가 있습니까? – Letterman