반응형

현재 폴더에 있는 지정한 파일의 전체 경로(절대 경로)를 얻는 예제입니다. 



2021. 1. 14  최초작성

 



아래 링크에서 발견한 코드를 MinGW로 테스트하니 문제 없었지만.


https://stackoverflow.com/a/17632322



#include <stdio.h>
#include <windows.h>

int main()
{
    char path[] = "get_filepath.cpp";
    char *filename;
    char fullpath[256];

    GetFullPathName(path, 256, fullpath, &filename); // linux realpath

    printf("Full path: %s\nFilename: %s\n", fullpath, filename);
    return 0;
}




Visual Studio 2019에서 실행시켜 보니 에러가 발생하여 수정하면서 Linux에서도 똑같은 결과를 내놓도록 추가했습니다. 


#include <stdio.h>

#ifdef _MSC_VER

#include <windows.h>
#include <atlconv.h>

#else

#include <limits.h>
#include <stdlib.h>

#endif

int main()
{
    const char* path = "get_filepath.cpp";

#ifdef _MSC_VER

    USES_CONVERSION;
    wchar_t* _path = A2W(path);
    wchar_t* _filename;
    wchar_t _fullpath[MAX_PATH];

    GetFullPathName(_path, 256, _fullpath, &_filename);

    char* filename = W2A(_filename);
    char* fullpath = W2A(_fullpath);
   
    printf("Full path: %s\nFilename: %s\n", fullpath, filename);
#else
    char fullpath[PATH_MAX];
    realpath(path, fullpath);

    printf("Full path: %s\n", fullpath);
#endif



    return 0;
}




Windows 실행결과


Full path: C:\Users\webnautes\source\repos\console_test_PROJECT\console_test_PROJECT\get_filepath.cpp
Filename: get_filepath.cpp



Linux 실행결과


webnautes@webnautes-pc:~$ ./a.out
Full path: /home/webnautes/get_filepath.cpp







반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 ~~

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts