A. C語言判斷指定文件是否存在
頭文件:.h
功 能: 確定文件或文件夾的訪問許可權。即,檢查某個文件的存取方式,比如說是只讀方式、只寫方式等。如果指定的存取方式有效,則函數返回0,否則函數返回-1。
用 法: int access(const char *filenpath, int mode); 或者int _access( const char *path, int mode );
參數說明:
filenpath
文件或文件夾的路徑,當前目錄直接使用文件或文件夾名
備註:當該參數為文件的時候,access函數能使用mode參數所有的值,當該參數為文件夾的時候,access函數值能判斷文件夾是否存在。在WIN NT 中,所有的文件夾都有讀和寫許可權
mode
要判斷的模式
在頭文件unistd.h中的預定義如下:
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
具體含義如下:
00 只判斷是否存在
02 只判斷是否有寫許可權
04 只判斷是否有讀許可權
06 判斷是否有讀並且有寫許可權
程序例
#include<stdio.h>
#include<io.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ?"YES":"NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
頭文件:io.h
功 能: 確定文件或文件夾的訪問許可權。即,檢查某個文件的存取方式,比如說是只讀方式、只寫方式等。如果指定的存取方式有效,則函數返回0,否則函數返回-1。
用 法: int access(const char *filenpath, int mode); 或者int _access( const char *path, int mode );
參數說明:
filenpath
文件或文件夾的路徑,當前目錄直接使用文件或文件夾名
備註:當該參數為文件的時候,access函數能使用mode參數所有的值,當該參數為文件夾的時候,access函數值能判斷文件夾是否存在。在WIN NT 中,所有的文件夾都有讀和寫許可權
mode
要判斷的模式
在頭文件unistd.h中的預定義如下:
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
具體含義如下:
00 只判斷是否存在
02 只判斷是否有寫許可權
04 只判斷是否有讀許可權
06 判斷是否有讀並且有寫許可權
程序例
#include<stdio.h>
#include<io.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ?"YES":"NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
B. 如何用C語言判斷文件夾內是否有文件夾或文件
舉例來說:FILE*fp=fopen("dict.txt","r");charbuf[1024];if(fp!=(FILE*)NULL){while(fgets(buf,sizeof(buf),fp))//從文件中讀入一行字元串,保存在buf中,直到讀完所有字元串{//處理讀入的字元串buf}fclose(fp);}
C. C語言,判斷一個文件是否存在
你貼的這個函數PathFileExists並不是C語言提供的庫函數,而是windows系統提供的系統調用,如果你是初學者,盡量用C語言提供的庫函數來實現功能,你可以這樣:
int exist(char *file) //傳入想要判斷的路徑字元串指針
{
FILE *fp;
fp=fopen(file,"r"); //fopen是一個C庫函數,用於打開文件,"r"是只讀模式,在這種模式下,如果文件存在,則能成功以只讀模式打開,fopen返回一個非0的文件描述符,如果文件不存在,則fopen返回NULL(NULL意思是空)。正好可以利用這一點來判斷文件是否存在
if(fp=NULL)
return 0; //不存在返回0
else
{
fclose(fp); //存在的話,要先把之前打開的文件關掉
return 1; //然後返回1
}
}
這樣,你就可用這里定義的exist函數判斷文件是否存在了。比如
if(exist("a.txt")==0)printf("不存在!");
else printf("存在!");
如果你真想用PathFileExists這個函數,那麼也很簡單,LPCTSTR你可以簡單理解為就相當於char*,這是windows封裝的一個數據類型。_in是一個修飾符,表示參數是傳入給PathFileExists用的而不是由PathFileExists傳出來的。這個函數可以這樣用:
if(PathFileExists("a.txt")==FALSE)printf("不存在!");
else printf("存在!");
用這個函數時注意加頭文件<windows.h>
有問題請繼續追問啊
D. 在C++中如何判斷文件夾是否存在,不存在的話創建文件夾
參考代碼如下:
#include <stdio.h>
#include <direct.h>
#include <stdlib.h>
#include <memory>
//檢查文件夾是否存在,不存在則創建之
//文件夾存在返回 0
//文件夾創建失敗返回-1
//文件夾創建失敗返回1
int CheckDir(char* Dir)
{
FILE *fp = NULL;
char TempDir[200];
memset(TempDir,'\0',sizeof(TempDir));
sprintf(TempDir,Dir);
strcat(TempDir,"\\");
strcat(TempDir,".temp.fortest");
fp = fopen(TempDir,"w");
if (!fp)
{
if(_mkdir(Dir)==0)
{
return 1;//文件夾創建成功
}
else
{
return -1;//can not make a dir;
}
}
else
{
fclose(fp);
}
return 0;
}
E. C/C++判斷文件/文件夾是否存在
一、判斷文件夾是否存在: 1.用CreateDirectory(".//FileManege",NULL);如果文件夾FileManege不存在,則創建。 2.或者if(_access(".//FileManege",0)==-1),表示FileManege不存在。 3.或者BOOL PathIsDirectory(LPCTSTR pszPath);二、判斷文件是否存在: 1.用if((file=fopen(".//FileManege//F//F.dat","rb"))==NULL) file=fopen(".//FileManege//F//F.dat","ab+"); // 先判斷有無文件,沒的話新建一個 2.用if(_access(".//FileManege//F//F.dat",0)==-1),表示文件不存在。 函數int _access( const char *path, int mode );可以判斷文件或者文件夾的mode屬性 mode=00;//Existence only mode=02;//Write permission mode=04;//Read permission 需要包含頭文件<io.h>。
F. c#中如何檢測文件路徑是否存在
stringpath=@"d:A.txt";
if(File.Exists(path))
{
Console.WriteLine("文件存在");
}