Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

C# - 윈도우에서 dropbox 동기화 폴더 경로 및 종료하는 방법

동기화 경로를 알기 위해서는 우선, 드롭박스 응용 프로그램이 설치된 폴더를 알아내야 하는데요. 이것은 레지스트리에 등록되어 있으므로 간단하게 읽어낼 수 있습니다.

using (RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"Software\Dropbox"))
{
    string binPath = regKey.GetValue("InstallPath") as string;
	// binPath == C:\Users\[계정명]\AppData\Roaming\Dropbox\bin

    string parentPath = Path.GetDirectoryName(binPath);
	// parentPath == C:\Users\[계정명]\AppData\Roaming\Dropbox
}

그리고, dropbox가 동기화를 해주는 폴더는 위에서 구한 경로(C:\Users\[계정명]\AppData\Roaming\Dropbox)에 info.json이라는 JSON 형식의 파일로 저장되어 있습니다. 대략 다음과 같은 내용을 포함하고 있습니다.

{"personal": {"path": "c:\\dropbox\\syncfolder", "host": 2514383810}}

따라서, "Newtonsoft.Json" 같은 라이브러리를 이용해 다음과 같이 간단하게 해석해서 path 값을 구하면 됩니다.

string infoJsonFilePath = Path.Combine(parentPath, "info.json");
    // infoJsonFilePath == C:\Users\[계정명]\AppData\Roaming\Dropbox\info.json

string jsonText = File.ReadAllText(infoJsonFilePath);

JObject dropBox = JObject.Parse(jsonText);
JToken personal = dropBox["personal"];
string path = personal.SelectToken("path").ToString();
    // path == D:\\dropbox\\syncfolder




dropbox를 우아하게(gracefully) 종료하는 공식적인 방법은 소개되어 있지 않습니다. 단지, 제가 dropbox.exe에 무작위 인자를 주다 보니 "/kill" 옵션이 그런 역할을 했습니다.

dropbox.exe /kill

(물론, 공식적으로 발표된 사항이 아니기 때문에 개발사 측에 의해 임의로 언제든 바뀔 수 있습니다.)

다시 실행하는 방법은 아무 인자 없이 dropbox.exe를 실행하면 됩니다. 참고로, dropbox.exe의 경우 Run 레지스트리에는 /systemstartup 인자를 주고 있습니다.

dropbox.exe /systemstartup




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 2/3/2015]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 166  167  168  169  170  [171]  172  173  174  175  176  177  178  179  180  ...
NoWriterDateCnt.TitleFile(s)
812정성태12/11/200927514개발 환경 구성: 56. Pet Shop 4.0 - SQL Server Compact Edition Version파일 다운로드2
811정성태12/2/200941881.NET Framework: 169. [in, out] 배열을 C#에서 C/C++로 넘기는 방법 - 두 번째 이야기 [8]파일 다운로드2
810정성태12/1/200937682.NET Framework: 168. [in,out] 배열을 C#에서 C/C++로 넘기는 방법 [3]
809정성태11/27/200926982오류 유형: 90. Method not found: 'Void System.Reflection.Emit.DynamicMethod..ctor(System.String, System.Type, System.Type[])'.
808정성태11/26/200935915VC++: 38. X64 빌드 오류: error LNK2001: unresolved external symbol [COMDLL]_ProxyFileInfo
807정성태11/23/200929988웹: 14. 로컬에 있는 HTML 페이지를 보호 모드에서 여는 방법
802정성태11/19/200932145.NET Framework: 167. 다른 스레드의 호출 스택 덤프 구하는 방법파일 다운로드1
801정성태11/18/200939517개발 환경 구성: 55. Hyper-V와 고성능 그래픽 카드의 성능 문제 해결 [1]
800정성태11/13/200932308VS.NET IDE: 66. 수동으로 구성해 본 VC++ 프로젝트 설정: ReleaseMinDependency
798정성태11/10/200931018개발 환경 구성: 54. .NET 개발자가 처음 설치해 본 TOMCAT [2]
797정성태11/9/200927262개발 환경 구성: 53. 물리 PC에 설치된 Windows 7을 Hyper-V로 이전하면?
796정성태11/2/200931200오류 유형: 89. Windows 7 백업 오류 - 0x80070057
795정성태11/2/200928253오류 유형: 88. TFS 2010 (beat2) 설치 오류 -TF255272
793정성태10/19/200930161.NET Framework: 166. WPF - XAML 요소의 네임스페이스와 CLR 타입 매핑
792정성태10/17/200930614웹: 13. IIS 7.5 에서 SQL Express 연결 시 오류
791정성태10/17/200934466웹: 12. 요청 페이지에 대해 빈 화면만 보이는 경우 [1]
789정성태10/13/200930506COM 개체 관련: 22. BB FlashBack SDK와 ActiveX 버전 관리 [7]
786정성태10/9/200926588개발 환경 구성: 52. 테스트를 위한 평가판 운영체제 구하기
785정성태10/8/200932921.NET Framework: 165. WPF - UI 업데이트를 바로 반영하고 싶다면? (2)파일 다운로드1
783정성태10/7/200930695.NET Framework: 164. WPF - 데이터 바인딩된 트리에서 부모 노드 찾는 방법 [1]파일 다운로드1
782정성태10/6/200932944개발 환경 구성: 51. Windows 7 - 다중 원격 접속(Remote Desktop) 허용
781정성태9/30/200929445.NET Framework: 163. WPF - TreeView 자동 스크롤 기능 해지 [2]파일 다운로드1
780정성태9/28/200933585Windows: 48. Windows 7/2008에서 ping을 위한 echo 요청 열기 [2]
779정성태9/24/200924886.NET Framework: 162. WPF - 중첩된 ScrollViewer의 크기 제어 - 두 번째 이야기파일 다운로드1
778정성태9/23/200926756오류 유형: 87. 시스템 시간 변경 후 Session이 맺어진 WCF 클라이언트의 예외 발생파일 다운로드1
776정성태9/17/200925703개발 환경 구성: 50. Reference assembly
... 166  167  168  169  170  [171]  172  173  174  175  176  177  178  179  180  ...