Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Direktori Semasa dalam C?

Bagaimana untuk Mendapatkan Direktori Semasa dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-11-09 03:32:02306semak imbas

How to Get the Current Directory in C  ?

Mendapatkan semula Direktori Semasa

Mendapatkan direktori semasa adalah tugas yang kerap dalam pengaturcaraan. Sebagai contoh, katakan anda ingin mencipta fail dalam direktori yang sama di mana boleh laku dijalankan. Untuk melakukan ini, anda perlu mendapatkan laluan direktori semasa.

Walau bagaimanapun, apabila menggunakan fungsi GetCurrentDirectory() seperti yang ditunjukkan di bawah:

LPTSTR NPath = NULL;
DWORD a = GetCurrentDirectory(MAX_PATH, NPath);
HANDLE hNewFile = CreateFile(NPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

anda mungkin menghadapi pengecualian. Daripada GetCurrentDirectory(), anda harus menggunakan GetModuleFileName() untuk mendapatkan semula laluan boleh laku.

TCHAR buffer[MAX_PATH] = { 0 };
GetModuleFileName(NULL, buffer, MAX_PATH);

Untuk mendapatkan laluan direktori tanpa nama fail, anda boleh menggunakan fungsi C berikut:

#include <windows.h>
#include <string>
#include <iostream>

std::wstring ExePath() {
    TCHAR buffer[MAX_PATH] = { 0 };
    GetModuleFileName(NULL, buffer, MAX_PATH);
    std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\/");
    return std::wstring(buffer).substr(0, pos);
}

int main() {
    std::cout << "my directory is " << ExePath() << "\n";
}

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Direktori Semasa dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn