2011-03-05 2 views
3

파일/디렉토리가있는 실제 드라이브를 어떻게 찾을 수 있습니까? 두 파일을 비교하고 싶습니다. 두 드라이브가 서로 다른 경우 두 파일을 동시에 읽음으로써 비교 속도를 높일 수 있습니다.파일이 어떤 물리적 하드 드라이브에 있는지 확인하십시오.

감사합니다.

+2

어쨌든 특히 하드 디스크의 여러 위치에서 동시에 읽는 C# – n00b

+0

@ n00b 읽기가 정상적인 하드 디스크의 높은 검색 시간으로 인해 읽기 속도가 크게 느려질 수있는 경우에는 동시에 둘 다 읽습니다. – CodesInChaos

+0

@CodeInChaos : 디스크에 따라 다릅니다. 예를 들어 RAID 어레이에 있다면 ... –

답변

2

이 경우 P/Invoke가 필요할 수 있습니다. 위의 링크에서

Way to know if two partitions are in one physical hard disk without WMI?

: 당신이해야합니다

는 Win32 함수 DeviceIoControl을()가 호출됩니다. API 설명서는 http://msdn.microsoft.com/en-us/library/aa363216(VS.85).aspx에서 찾을 수 있습니다. 제어 코드 IOCTL_STORAGE_GET_DEVICE_NUMBER로 DeviceIoControl()을 호출하면 주어진 파티션 장치 핸들에 대한 실제 디스크 드라이브를 가져옵니다. CreateFile() API를 사용하여 파티션의 장치 핸들을 검색 할 수 있습니다.

3

동시에 둘 다 읽습니다.

최악의 경우 속도가 약간 느릴 수 있습니다 (실제 실제 디스크에 따라 다름).

기껏해야 더 빠를 것입니다.