① C#中怎麼用絕對路徑
//獲取應用程序的當前工作目錄。
String path1 = System.IO.Directory.GetCurrentDirectory();
MessageBox.Show("獲取應用程序的當前工作目錄:" + path1);
//獲取程序的基目錄。
String path2 = System.AppDomain.CurrentDomain.BaseDirectory;
MessageBox.Show("獲取程序的基目錄:" + path2);
//獲取和設置包括該應用程序的目錄的名稱。
String path3 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
MessageBox.Show("獲取和設置包括該應用程序的目錄的名稱:" + path3);
//獲取啟動了應用程序的可執行文件的路徑,不包括可執行文件的名稱。
String path4 = System.Windows.Forms.Application.StartupPath;
MessageBox.Show("獲取啟動了應用程序的可執行文件的路徑,不包括可執行文件的名稱:" + path4);
//獲取啟動了應用程序的可執行文件的路徑及文件名
String path5 = System.Windows.Forms.Application.ExecutablePath;
MessageBox.Show("獲取啟動了應用程序的可執行文件的路徑及文件名:" + path5);
文件路徑分為絕對路徑和相對路徑。完整描述文件位置的路徑就是絕對路徑,相對於目標的位置就是相對路徑。
絕對路徑:是從盤符開始的路徑,形如
C:\windows\system32\cmd.exe
相對路徑:是從當前路徑開始的路徑,假如當前路徑為C:\windows
要描述上述路徑,只需輸入
system32\cmd.exe
代碼:
***註:利用打開文件對話框打開文件並獲取絕對路徑***
private void analysis_Click(object sender, EventArgs e)
{
//讀取初始數據協方差矩陣
//string data = @"E:\cov_data.xlsx";
OpenFileDialog file = new OpenFileDialog();
file.Filter = "文本文件(*.xlsx)|*.xlsx|所有文件(*.*)|*.*";
file.Title = "選擇影像協方差數據";
if (file.ShowDialog() == DialogResult.OK)
{
string data = file.FileName;
zhuchengfen_analysis.Zhuchengfen_analysis st = new zhuchengfen_analysis.Zhuchengfen_analysis();
st.zhuchengfen_analysis(data);
}
}
② c語言中文件的絕對完整路徑是什麼意思
就是直接到達目標位置,通常是從盤符開始的路徑
如:c:\文件夾1\1.txt
望採納!
③ 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語言不能打開文件,路徑設置對了
1.如果文件不在當前文件夾當中,需要輸入絕對路徑。或者,使用system("CD")指令更改當前路徑,在目標文件路徑下打開文件。
2.對於程序來說,不管後綴名如何,文件分為兩種類型:文本文件和二進制文件。
C語言里有一系列文件操作函數。區分文本和二進制文件,需要在打開文件時設置不同的控制符mode的變數即可。
3.fopen的函數原型:FILE * fopen(const char * path,const char * mode);
fopen函數的第一個參數是文件路徑,第二個參數是打開方式,有以下幾種方式:
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀數據。
rw+ 讀寫打開一個文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個二進制文件;只允許寫數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
wt+ 讀寫打開或著建立一個文本文件;允許讀寫。
at+ 讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。
⑤ c語言讀取文件的路徑怎麼設定
可以是絕對路徑 也可以是相對路徑
絕對路徑 就是帶盤符的。 比如 c:\\a.txt這樣的
相對路徑 就是以當前可執行文件運行路徑作為起始
一般用絕對路徑不容易出錯。
⑥ C語言中對文件進行操作如何使用絕對路徑
D:\\SSS\\ABC.TXT //你少了個\,在C字元串中,出現\的地方,你一律打兩個\\就行了。
⑦ 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語言中怎麼用絕對路徑
system("cmd /c 絕對路徑");
比如你要訪問c:dos c123.bat
就是system("cmd /c c:\dos\tc\123.bat");
⑨ C語言中要讀一個文件需要文件路徑么
需要,如果你想要打開不是當前編譯文件夾下的文件的時候,就要路徑
例如
FILE
*fp;
fp=fopen("student.txt"
"a");
就是打開你當前編譯文件下的student.txt文檔,但是不過你要打開別的就應該加路徑
例如
fp=fopen("C:\\Users\\hust\\student.txt","a");
就是這樣,但是要記住打開的時候\\要用雙反斜線,因為單個反斜線為轉義符,這樣你打不開文件