2011-03-04 10 views
0

내 C# 3.5 프로그램에서 MS Virtual PC 컴퓨터에서 NTFS/FAT 드라이브에 액세스하고 싶습니다..NET에서 Microsoft Virtual PC 파일 시스템을 마운트하는 방법은 무엇입니까?

Microsoft 사이트에서 Virtual PC 용 C++ API를 볼 수는 있지만 P-Invoke를 사용해야합니까? .NET 하나를 찾을 수 없습니다. 필자는 File.ReadAllText, Directory.GetDirectories와 같은 일반적인 .NET API 호출 또는 도움말을 사용하여 가상 michine 내부의 파일 시스템 내의 파일과 폴더를 검사하고 싶습니다.

샘플 코드는 매우 감사하겠습니다.

+0

가상 컴퓨터가 보는 드라이브에 액세스하려고합니까? 아니면 호스팅 컴퓨터가 드라이브입니까? 두 번째 작업을 수행하려는 경우 가능하다고 생각하지 않습니다. – JasCav

+0

호스트 시스템에서 가상 드라이브에 액세스하고 싶습니다. 나는 가상 머신을 켜지 않고 그것을하고 싶다. 왜 안돼? 가상 PC는 어떻게 든 그것을 자체적으로 수행하므로 내 프로그램도 가능해야합니다. – Alex

답변

1

호스트 운영 체제에 따라 Windows 7/Server 2008에 도입 된 Virtual Harddisk API을 사용할 수 있습니다. .NET 지원에 대해서는 잘 모릅니다. 내가 아는 한, interop을 사용하여 액세스해야합니다.

http://www.jmedved.com/2009/05/open-and-attach/의 예는 VHD를 연결하는 데 절대적으로 필요한 구조체/함수 만 정의합니다. 보다 완벽한 interop 정의 클래스는 http://files.codes-sources.com/fichier_fullscreen.aspx?id=50320 (Win7_VirtualDiskWrapper/VirtualDiskWrapper/Interop 참조) 디렉토리에서 찾을 수 있습니다.

이 API를 사용하려면 관리자 권한이 필요합니다.

응용 프로그램이 Win7 이전의 OS에서 실행되어야한다면 여기에있는 답/설명에 설명 된대로 외부 도구를 사용해야합니다.

+0

고마워, 텔레 윈,이게 내가 찾던 바로 그거야! – Alex

1

당신은 당신이 다른 모든 로컬 드라이브로 액세스 한 다음 이미지를 마운트 WinMount ($) 같은 것을 사용하고, 수, 어쨌든 ... 당신의 VMDK question에 비슷한 질문처럼

을 보인다.

MS 가상 서버가있는 경우 다른 옵션은 VHDMount입니다.

둘 다 명령 줄 도구가 있는데, 필요한 경우 앱에서 시작할 수 있습니다.

+0

예, 내 프로그램에서 두 가지 형식을 지원할 것입니다. 제 3 자 프로그램을 피하고 싶습니다. 가능한 경우 .NET API를 사용하고 싶습니다. VMWare에 대해서는 잘 모르겠지만 Microsoft가 자신의 .NET API를 사용하여 자체 기술을 지원하지 않는다고 생각하지는 않습니다. – Alex

+0

세미콜론을 잊어 버려서 옵션을 주셔서 감사합니다! – Alex

+0

@Alex 타사 도구가 작업을 해결할 경우 타사 도구를 사용하지 마십시오. +1 답변, 정말 멋진, 특히 두 번째 링크, 좋은 정보가 거기에있다. – Andrey