Windows 운영 체제에서 주 하드 디스크의 드라이버 문자는 어떻게 찾을 수 있습니까?어떻게하면 시스템 드라이브 문자를 얻을 수 있습니까?
즉, 드라이브는 Program Files
, System32
등입니다.
Windows 운영 체제에서 주 하드 디스크의 드라이버 문자는 어떻게 찾을 수 있습니까?어떻게하면 시스템 드라이브 문자를 얻을 수 있습니까?
즉, 드라이브는 Program Files
, System32
등입니다.
API 전화 GetWindowsDirectory이 도움이 될 수 있습니다. API를 사용하여이 정보를 더 파싱하여 드라이브 문자 정보를 구문 분석 할 수 있습니다.
** GetWindowsDirectory() 결과를 "추가로 구문 분석"하기 위해 사용하는 ** API는 무엇입니까? – unixman83
Windows 디렉토리 경로의 첫 문자 만 가져옵니다. –
SystemDrive
이라는 환경 변수가 시스템 드라이브에 설정되어 있습니다 (놀랍게도 충분히). getenv()
호출은 어떻게 호출 할 수 있습니다.
char *sysDrive = getenv ("SystemDrive");
if (sysDrive == NULL) {
// vote me down.
} else {
// vote me up and use it.
}
This page 목록 시스템 드라이브에 존재하는 특정 디렉토리에 의존 할 수없는 경우 가능한 환경 변수의 전체 슬루.
또는 Windows API 호출 SHGetSpecialFolderPath()을 사용하고 올바른 CSIDL을 전달하십시오. 그렇다면 환경 변수에 의존 할 필요가 없습니다.
Vista의 다른 기능에 의해 대체 된 페이지에 주목하십시오 (이 기능은 새로운 기능을 둘러싼 래퍼가되므로 계속 작동해야 함).
SYSTEMDRIVE
PROGRAMFILES
SYSTEMROOT
WINDIR
이 프로그램 파일은 윈도우와 같은 드라이브에있는 가정하지 마십시오. 보통 그렇습니다. 일반적으로.
대문자는 Windows 환경 변수의 이름입니다. – unixman83
_ 보통, 확실합니까? –
https://msdn.microsoft.com/en-us/library/ms724426.aspx
' 보이드 그리고 PrintError (TCHAR * MSG) { DWORD 열거; TCHAR sysMsg [256]; TCHAR * p; eNum = GetLastError(); 하는 formatMessage (FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, ENUM, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), sysMsg, 256, NULL); 는 easilty에 변경 될 수 있습니다 // /*하는 formatMessage (FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL 원하면 GetLastError(), MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), sysMsg, 256, NULL); */
// Trim the end of the line and terminate it with a null
p = sysMsg;
while((*p > 31) || (*p == 9)) ++p;
do { *p-- = 0; } while((p >= sysMsg) &&
((*p == '.') || (*p < 33)));
// Display the message
_tprintf(TEXT("\n\t%s failed with error %d (%s)"), msg, eNum, sysMsg);
을 } ' 하지만 시스템 정보를 대부분 얻는 방법을 설명합니다. 매우 유익한 정보
답을 다시 포맷하십시오. – ThomasEdwin
코드 태그와 줄 바꿈으로 응답 형식을 지정해야합니다. – Alan
프로그램이 "\ Program Files"또는 "\ Windows \ System32"의 시스템 파일이라고 가정하지 마십시오. 이들에 대한 정확한 경로를 검색하는 API 호출이 있습니다 ... – Shog9
API 호출 중 하나의 예를 들려서 조사 할 수 있습니까? 나는 –
http://msdn.microsoft.com/en-us/library/ms724373.aspx ... http://msdn.microsoft.com/en-us 프로그램과 연관된 특정 파일을 찾기 위해 걸려 라 /library/bb762181.aspx – Shog9