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

Bagaimana untuk Mendapatkan Direktori Semasa dalam C?

Linda Hamilton
Lepaskan: 2024-11-09 03:32:02
asal
327 orang telah melayarinya

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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";
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan