文件操作 之 C實現

判斷文件訪問權限

頭文件 <io.h>

int _access(const char *path,int mode ); 
int _waccess(const wchar_t *path,int mode );
返回0成功,-1 失敗
mode:
00 只檢查文件是否存在 F_OK
01  是否有執行權限 X_OK
02 寫權限 W_OK
04 讀權限 R_OK
06 讀寫權限 W_OK|R_OK

讀寫文件

頭文件<stdio.h>
//fsopen()文件共享,fopen_s()直接返回錯誤碼,但不適用共享模式
打開文件

//獲取文件指針
FILE *pFile = fopen("1.txt", //打開文件的名稱,絕對路徑或者相對路徑
                    "w"); // 文件打開方式 如果原來有內容也會銷燬

向文件寫數據

fwrite ("hello", //要輸入的文字
         1,//文字每一項的大小,這裏是字符型的就設置爲1,如果是漢字就設置爲4
         strlen("hello"), //單元個數 我們也可以直接寫5
         pFile //我們剛剛獲得到的文件指針
         );

關閉文件

fclose(pFile); //告訴系統我們文件寫完了數據更新,但是我們要要重新打開才能在寫

刷新緩存,將緩存中的數據寫入文件

fflush(pFile); //數據刷新 數據立即更新

讀文件流程

FILE *pFile=fopen("1.txt","r"); //獲取文件的指針
char *pBuf;  //定義文件指針
fseek(pFile,0,SEEK_END); //把指針移動到文件的結尾 ,獲取文件長度
int len=ftell(pFile); //獲取文件長度
pBuf=new char[len+1]; //定義數組長度
rewind(pFile); //把指針移動到文件開頭 因爲我們一開始把指針移動到結尾,如果不移動回來 會出錯
fread(pBuf,1,len,pFile); //讀文件
pBuf[len]=0; //把讀到的文件最後一位 寫爲0 要不然系統會一直尋找到0後才結束
MessageBox(pBuf);  //顯示讀到的數據
fclose(pFile); // 關閉文件

刪除文件

remove()函數用於刪除指定的文件,其原型如下:
int remove(char * filename);
成功返回 0

文件或目錄重命名

int rename(const char *old_filename, const char *new_filename)
如果成功,則返回零。如果錯誤,則返回 -1,並設置 errno。

說明:
重命名文件:
如果newname指定的文件存在,則會被刪除。
如果newname與oldname不在一個目錄下,則相當於移動文件。

重命名目錄:
如果oldname和oldname都爲目錄,則重命名目錄。
如果newname指定的目錄存在且爲空目錄,則先將newname刪除。
對於newname和oldname兩個目錄,調用進程必須有寫權限。
重命名目錄時,newname不能包含oldname作爲其路徑前綴。例如,不能將/usr更名爲/usr/foo/testdir,因爲老名字( /usr/foo)是新名字的路徑前綴,因而不能將其刪除。

創建文件類型參數

“rt” 只讀打開一個文本文件,只允許讀數據 
“wt” 只寫打開或建立一個文本文件,只允許寫數據 
“at” 追加打開一個文本文件,並在文件末尾寫數據 
“rb” 只讀打開一個二進制文件,只允許讀數據 
“wb” 只寫打開或建立一個二進制文件,只允許寫數據 
“ab” 追加打開一個二進制文件,並在文件末尾寫數據 
“rt+” 讀寫打開一個文本文件,允許讀和寫 
“wt+” 讀寫打開或建立一個文本文件,允許讀寫 
“at+” 讀寫打開一個文本文件,允許讀,或在文件末追加數據 
“rb+” 讀寫打開一個二進制文件,允許讀和寫 
“wb+” 讀寫打開或建立一個二進制文件,允許讀和寫 
“ab+” 讀寫打開一個二進制文件,允許讀,或在文件末追加數據

r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文本文件,可省略不寫
b(banary): 二進制文件
+: 讀和寫

總結
在這裏插入圖片描述

程序退出
Exit()函數返回0,表示正確推出,其他參數錯誤退出,返回到操作系統

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章