Проблема:
после замены на другой диск (здесь диск C), затем возврат на исходный диск с помощью _chdrive
, текущий рабочий каталог изменяется . (Здесь он меняется с D:\Win32-Cases\ChangeDir\ChangeDir
на D:\Win32-Cases\ChangeDir
). Следующий снимок может показать эту проблему.
Поскольку вы просто меняете диск с помощью _chdrive
(D:
) вместо каталога. Поэтому последний каталог, возвращенный (D:\Win32-Cases\ChangeDir
) из _tgetcwd
, запоминается системой, но это не то, что _chdrive
делает для вас.
Хотя каждый процесс может иметь только один текущий каталог, еслиприложение переключает тома с помощью функции SetCurrentDirectory, система запоминает последний текущий путь для каждого тома (буква диска) . Это поведение проявится только при указании буквы диска без полного пути при изменении текущей точки ссылки на каталог на другой том. Это относится к операциям Get или Set.
См. " Изменение текущего каталога ".
Если это правда, но почему он запоминает путь D:\Win32-Cases\ChangeDir
вместо D:\Win32-Cases\ChangeDir\ChangeDir
? Вот что мне нужно выяснить ...
Я хочу сказать, что _chdrive
делает то, для чего он предназначен, основываясь на документе : Изменяет текущую работудиск .
Если вы хотите изменить каталог, используйте _chdir
.