내 컴퓨터의 예에서 원하는 출력은 "C : E : F : H : N :"이어야합니다. 나는 그것이 가능하다는 것을 안다. 그러나 그것을하는 가장 간단한 방법은 무엇인가? QueryDosDevice 출력의 도터 화시스템 volumines 목록을 반환하는 프로그램
#ifndef UNICODE
#define UNICODE
#endif
#include <Windows.h>
#include <fstream>
#include <iostream>
const int REPORT_LENGTH = 5000;
int main(void)
{
TCHAR targetPath[REPORT_LENGTH];
std::ofstream oFile;
oFile.open("dos device query.txt");
QueryDosDevice(NULL,targetPath,REPORT_LENGTH);
for(int i=0; i<REPORT_LENGTH;i++)
if (targetPath[i]=='\0')(targetPath[i]='\n');
for(int i=0; i<REPORT_LENGTH; i++)
oFile<<static_cast<char>(targetPath[i]);
oFile.close();
return 0;
}
은 많은 시간과 자원을 낭비합니다. 또한 GetLogicalDriveStrings 기능은 나를 많이 배반했습니다.
#include <Windows.h>
int main()
{
TCHAR buffer[50];
GetLogicalDriveStrings(50,buffer);
MessageBox(0,buffer,"Drives in the system",MB_OK);
return 0;
}
"C : \"볼륨 만 표시합니다. (영업 이익과 독자들에게 연습 문제로 남겨되는),이기는하지만하지 문자열로 합치와
출력을 잘못 해석하면 GetLogicalDriveStrings에 문제가 발생할 수 있습니다. –