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

Bagaimana untuk Dapatkan Laluan Direktori Semasa dalam C?

Patricia Arquette
Patricia Arquetteasal
2024-11-08 10:29:02715semak imbas

How to Retrieve the Current Directory Path in C  ?

Mendapatkan Direktori Semasa dalam C

Apabila mencipta fail dalam direktori semasa di mana program sedang melaksanakan, adalah penting untuk mendapatkan laluan yang betul. Walau bagaimanapun, dalam kod anda, anda menghadapi pengecualian semasa GetCurrentDirectory().

Memahami Pengecualian

Pengecualian mungkin disebabkan oleh hujah tidak sah yang dihantar kepada GetCurrentDirectory. Anda perlu memperuntukkan penimbal untuk menyimpan laluan direktori sebelum memanggil fungsi ini.

Penyelesaian Alternatif Menggunakan GetModuleFileName

Untuk mendapatkan semula laluan fail boleh laku, pertimbangkan untuk menggunakan GetModuleFileName sebaliknya:

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

Mengekstrak Laluan Direktori

Untuk mendapatkan laluan direktori tanpa nama fail, anda boleh menggunakan fungsi 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 Dapatkan Laluan 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