c# 다운로드 경로

처음에는 시스템에 비슷한 함수가 있는 정적 클래스 knownfolders가 있습니다. getfolderpath (): 이후 몇 년, 다시 Windows 98로 지금까지 내가 기억 하 고, 사용자가 자신의 홈 디렉토리에 „내 문서“ 라는 특별 한 폴더를가지고, „내 음악 „,“ 내 사진 „또는“ 내 동영상 „. 이들은 XP까지 상대적으로 본래 이라고 유지 되 고, 그들의 경로는 쉽게 만회 되었다: 간단 하 게 체계를 부르기. 함수를 호출 하 고 열거형이 내 문서, mymusic, mymictures 등등에 대 한 항목이 포함 되어있습니다. (면책 조항: 필자는 가져온 shgetknownfolderpath 함수를 별도의 „nativemethods“와 같은 클래스를 Microsoft에서 권장 하는 것으로 두지 않았습니다 .이 기능은 단순하게 하기 위한 것입니다.) 사용자가 다운로드 폴더의 경로를 리디렉션할 경우에는이 솔루션이 작동 하지 않습니다. 다운로드 폴더 등록 정보에서 경로를 변경 하 고 다른 위치를 선택할 수 있습니다. 그것은 사용자 루트 디렉토리에 되지 않을 수도 있습니다, 그것은 어디서 나 수 있습니다-예를 들어 내 모든 D에 있습니다: 파티션. 이것은 대부분의 경우에 „C:UsersUsername“ 같은 것을 반환 합니다. 다음 단계에서는, 폴더 이름은, 주로 하드 코드 된 추가 되 고 당신이 운이 좋은 경우에, 그것은 path로 행 해졌다. 결합 () 하드 코드 된 백슬래시 대신: 경로 자체의 정보에 액세스 합니다. 연결 된 열거형입니다. 하지만, 오, 잠깐 만요, 그것도 이름을 가진 불길 한 열쇠가 포함 되어있습니다 „! 이 레지스트리 키를 사용 하지 마십시오 „및 값“ 대신 사용 하는 shgetfolderpath 또는 shgetknownfolderpath 함수 „.

도대체이 열쇠는 나에 게 서 원하는 무엇입니까? 대부분의 .net 개발자는 단순히 그것의 도움이 경고를 차단 „난 shgetfolder발음 수 없습니다 뭐 든, 내가 그냥 이미이 키를 사용 하자, 지금까지 있어, 난 오늘이 일을 좀 해야 합니다.“. 이 메서드는 shsetknownfolderpath 메서드로 경로를 수정 하는 것과 같은 추가 기능을 제공 하며 필요한 권한이 있는 경우 모든 사용자의 경로를 쿼리할 수 있습니다. 주 스레드를 차단 하지 않고 파일을 다운로드 하려면 비동기 메서드 downfile easync를 사용 합니다. 진행률을 표시 하 고 파일이 다운로드 되는 것을 감지할 수 있도록 이벤트 처리기를 설정할 수도 있습니다. 다음 예제에서는 getfolderpath 메서드를 사용 하 여 folder 매개 변수와 연결 된 경로를 반환 및 표시 하는 방법을 보여 줍니다. 일반적으로 개발자는 신속 하 게이 두 가지 잘못 된 솔루션에 대 한 경로를 얻을-말-다운로드 폴더를 사용 합니다. 참고: 비동기 메서드를 사용 하는 있지만 동안 주 스레드를 차단할 수 있습니다. 그것은 비동기 다운로드 하기 전에 자체 때문에, 그것은 (이 경우에는 „mysite.com“) DNS 이름을 확인 하 고이 검사 기능을 차단 하 여 내부적으로 이루어집니다.

도메인 이름 대신 직접 IP를 사용 하는 경우, downfileeasasync 메서드가 완전히 비동기적입니다. getpath () 함수는 꽤 자기 설명, 특히 내가 그들에 게 그들이 정확 하 게 무엇을 설명 하는 큰 요약을 추가 했습니다. 또한 Initialize () 함수를 사용 하 여 특수 폴더가 아직 없는 경우 해당 폴더를 만들 수 있습니다.

Posted in Nezařazené