c語言獲取文件路徑
⑴ c語言...如何獲取進程的可執行文件路徑...
hMole=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pinfo->th32ProcessID);
Mole32First(hMole, minfo); GetShortPathName(minfo->szExePath,shortpath,256);如果還需要詳細的代碼,請Q我吧。。我最近剛在做這塊。。。新手,寫的東西比較簡單- -
⑵ c語言如何獲取用戶通過鍵盤輸入的文件目錄中的文件名和文件路徑,ballball大佬幫幫我🙏求代碼
int main()
{
string s = "c:\\abc\\def\\text.txt";
int xie_index = s.find_last_of('\\'); // 路徑中最後一個\的位置
string file_dirname = s.substr(0, xie_index + 1);
string file_basename = s.substr(xie_index + 1, s.size());
cout << file_dirname << endl << file_basename << endl;
}
⑶ C語言中要讀一個文件需要文件路徑么
文件不在執行程序的文件夾內,就需要完整的文件路徑。在文件夾內,使用文件名即可。
1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。
例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。一般的C語言教程都有文件操作一章。
(3)c語言獲取文件路徑擴展閱讀:
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用選擇結構。選擇結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。
選擇結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的選擇語句。選擇結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖。
然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
參考資料來源:網路-C語言
⑷ c語言讀取文件的路徑怎麼設定
//獲取指定目錄下的所有文件列表 author:wangchangshaui jlu
char** getFileNameArray(const char *path, int* fileCount)
{
int count = 0;
char **fileNameList = NULL;
struct dirent* ent = NULL;
DIR *pDir;
char dir[512];
struct stat statbuf;
//打開目錄
if ((pDir = opendir(path)) == NULL)
{
myLog("Cannot open directory:%s\n", path);
return NULL;
}
//讀取目錄
while ((ent = readdir(pDir)) != NULL)
{ //統計當前文件夾下有多少文件(不包括文件夾)
//得到讀取文件的絕對路徑名
snprintf(dir, 512, "%s/%s", path, ent->d_name);
//得到文件信息
lstat(dir, &statbuf);
//判斷是目錄還是文件
if (!S_ISDIR(statbuf.st_mode))
{
count++;
}
} //while
//關閉目錄
closedir(pDir);
// myLog("共%d個文件\n", count);
//開辟字元指針數組,用於下一步的開辟容納文件名字元串的空間
if ((fileNameList = (char**) myMalloc(sizeof(char*) * count)) == NULL)
{
myLog("Malloc heap failed!\n");
return NULL;
}
//打開目錄
if ((pDir = opendir(path)) == NULL)
{
myLog("Cannot open directory:%s\n", path);
return NULL;
}
//讀取目錄
int i;
for (i = 0; (ent = readdir(pDir)) != NULL && i < count;)
{
if (strlen(ent->d_name) <= 0)
{
continue;
}
//得到讀取文件的絕對路徑名
snprintf(dir, 512, "%s/%s", path, ent->d_name);
//得到文件信息
lstat(dir, &statbuf);
//判斷是目錄還是文件
if (!S_ISDIR(statbuf.st_mode))
{
if ((fileNameList[i] = (char*) myMalloc(strlen(ent->d_name) + 1))
== NULL)
{
myLog("Malloc heap failed!\n");
return NULL;
}
memset(fileNameList[i], 0, strlen(ent->d_name) + 1);
strcpy(fileNameList[i], ent->d_name);
myLog("第%d個文件:%s\n", i, ent->d_name);
i++;
}
} //for
//關閉目錄
closedir(pDir);
*fileCount = count;
return fileNameList
⑸ C語言打開文件的路徑問題
文件路徑分為絕對路徑和相對路徑。
絕對路徑:是從盤符開始的路徑,形如
D:\Project\Data\input.txt
相對路徑:是從當前路徑開始的路徑,假如當前路徑為D:\Project
要描述上述路徑,只需輸入
Data\input.txt
實際上,嚴格的相對路徑寫法應為
.\Data\input.txt
其中,.表示當前路徑,在通常情況下可以省略,只有在特殊的情況下不能省略。
與.類似..為父目錄,也即上一層目錄。
另外,還有一種不包含盤符的特殊絕對路徑,形如
\windows\system32\cmd.exe
無論當前路徑是什麼,會自動地從當前盤的根目錄開始查找指定的程序。
⑹ c語言如何獲得文件當前路徑
http://hi..com/andywangcn/item/7633efda5517baf9ca0c39c6
獲得雙斜杠路徑不包含文件名
TCHAR _szPath[MAX_PATH + 1]={0};
GetMoleFileName(NULL, _szPath, MAX_PATH);
(_tcsrchr(_szPath, _T('\\')))[1] = 0;//刪除文件名,只獲得路徑 字串
CString strPath;
for (int n=0;_szPath[n];n++)
{
if (_szPath[n]!=_T('\\'))
{
strPath +=_szPath[n] ;
}
else
{
strPath += _T("\\\\");
}
}
MessageBox(strPath);//輸出==e:\\program\\Debug\\
//頭文件用到 windows.h
⑺ c語言中如何得到當前文件所在位置
如果是通過open方式打開的,那麼第一個參數就是文件路徑信息:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *path, int oflag, /* mode_t mode */...);
如果是通過fopen方式打開的,那麼第一個參數就是文件路徑信息:
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode);
無論通過open還是fopen打開文件,都必須先知道文件路徑信息,盡管可能是相對路徑。
如果知道了filename的內容,我們就可以定位它的絕對路徑,也就是你說的完全路徑。
1. filename本身就是絕對路徑,ok。
2. filename是相對路徑,那麼先通過getcwd獲取進程的執行路徑,然後再獲取絕對路徑即可。
#include <unistd.h>
extern char *getcwd(char *buf, size_t size);
但是,如果進程在打開文件後又執行了chdir、fchdir之類函數的話,估計就不能夠再獲取文件路徑信息了。
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fildes);
⑻ C語言中,怎樣訪問其他路徑中的文件
fp=fopen(filename,"wb");里的filename就表示了文件的路徑及文件名,所以要把輸入的文件名和文件路徑拼接起來,計算出這個filename,
例如,
string
filename,
path,
name;
......(獲取path,
name的值)
filename
=
path
+
name;
fp=fopen(filename,"wb");
⑼ C語言如何讀取指定路徑下的所有指定格式的文件
用C語言讀取目錄中的文件名的方法:
1、如果是在window環境下,可以用一下方法:
使用stdlib.h頭文件聲明的system()函數
_CRTIMP int __cdecl system (const char*);
system("dir c:\ /a:h /b > c:\dir.txt");
調用系統命令dir,把c:目錄下文件列表寫入文件dir.txt中
2、使用dirent.h頭文件中聲明的opendir(),readdir()函數;
intmain(intargc,char*argv[])
{
DIR*directory_pointer;
structdirent*entry;
if((directory_pointer=opendir("d:\XL"))==NULL)
printf("Erroropening ");
else
{
while((entry=readdir(directory_pointer))!=NULL)
{
printf("%s ",entry->d_name);
}
closedir(directory_pointer);
}
system("PAUSE");
return0;
}
3、如果沒有dirent.h,可以使用io.h頭文件中聲明的_findfirst(),_findnext()函數;
示例代碼:
intmain(intargc,char*argv[])
{
longfile;
struct_finddata_tfind;
_chdir("d:\");
if((file=_findfirst("*.*",&find))==-1L)
{
printf("空白! ");
exit(0);
}
printf("%s ",find.name);
while(_findnext(file,&find)==0)
{
printf("%s ",find.name);
}
_findclose(file);
system("PAUSE");
return0;
}
⑽ 請問高手,c語言下用什麼函數可以讀取從鍵盤輸入的任意文件路徑然後再打開該文件
可以運行後指定要打開的文件,成功運行
如我D盤下有f1.txt,沒有f3.txt
兩次運行結果分別是
一:
請輸入要打開的文件名(含路徑):
d:\f1.txt
成功打開文件d:\f1.txt!
Press any key to continue
二:
請輸入要打開的文件名(含路徑):
d:\f3.txt
打開文件失敗!
Press any key to continue
程序如下:
#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 50
void main()
{
char* file=(char*)malloc(sizeof(char)*MAXSIZE);
printf("請輸入要打開的文件名(含路徑):\n");
gets(file);
FILE* fp;
if(!(fp=fopen(file,"r")))
{
puts("打開文件失敗!\n");
}
else
{
printf("成功打開文件%s!\n",file);
fclose(fp);
}
free(file);
}