2014-12-02 26 views
6

Lütfen C/C++ kullanarak o dosyanın tam yolunu döndüren bir işlevi nasıl gerçekleştireceğimi öğrenmeme yardım edin.Sadece dosya adı vererek tam yol nasıl elde edilir?

+3

Ya farklı yerde aynı ada sahip iki dosyalar? – Himanshu

+0

Dosya adınız veya dosya tanıtıcınız var mı? – nikhilr57

+2

aynı şekilde: http://stackoverflow.com/questions/1661982/how-do-i-get-the-full-path-for-a-filename-command-line-argument – Neska

cevap

11

UNIX/Linux:

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

char *full_path = realpath("foo.dat", NULL); 

... 

free(full_path); 

ya:

char full_path[PATH_MAX]; 
realpath("foo.dat", full_path); 

Pencereler:

#include <windows.h> 

TCHAR full_path[MAX_PATH]; 

GetFullPathName(_T("foo.dat"), MAX_PATH, full_path, NULL); 
+0

Evrensel bir çözüm yok mu? – Pedro77

+1

C++ 17'de, ['std :: filesystem :: canonical'] (http://en.cppreference.com/w/cpp/filesystem/canonical) var. Daha eski standartlar için, ['boost :: filesystem'] (http://www.boost.org/doc/libs/1_64_0/libs/filesystem/doc/index.htm) kütüphanesinin bir parçası olarak kullanılabilir. Yine de C standart kütüphanesinde benzer bir işlev olduğunu düşünmüyorum. – Wintermute

İlgili konular