c++中如何判断文件是不是存在

c++中如何判断文件是不是存在,第1张

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

c++中如何判断文件是不是存在,如果文件存在就跳不去向下运行,如果文件不存在,就用a+r+w的方式打开,新建一个空文件但是不往里面进行写 *** 作,然后在往下运行,请问怎样才能实现判断文件是否存在呀,谢谢

解析:

你初始化一个流或open一个文件它就会返回一个句柄,如果句柄为空就表示文件不存在啦~~

例如

ifstream input_file("文件名");
if(!input_file){如果打开不成功}



ifstream input_file;

input_fileopen("文件名");

if(!input_file){}

1、首先在电脑端新建一个java项目,如图,命名为javaFileTest名称。

2、在src下新建一个包,然后在myfile下建立一个主类,名称FileTestjava。

3、然后在FileTestjava中写入 *** 作代码,如下图代码所示。

4、接着进行运行测试,如下图所示。

5、这样就在java中可以判断一个文件夹是否存在,如图所示。

Dir ([PathName],[Attributes as VbFileAttribute = vbNormal]) as String 解释:PathName:文件或文件夹的绝对路径。 Attributes:文件的属性--默认值:vbNormal 是普通文件,vbHidden 是隐藏文件,vbDirectory是文件夹。 "[]"内为可以选项。Dir(file)=""表示文件或文件夹不存,即文件或文件夹的实际路径文空。Dir(file)<>""表示文件或文件夹存在,即文件或文件夹实际路径不为空。 例如判断C:\Windows\System32\cmdexe是否存在,如存在,就调用它,可用下列语句: '文件存,利用Shell调用,默值为vbNormalIf Dir("C:\Windows\System32\cmdexe")<>"" Then Shell "C:\Windows\System32\cmdexe"End If 如果判断的文件是隐藏文件,上面的语则无法判断出来,这时就需要加上后面的可选项目,例如 判断D盘根目录下是否有隐藏文件texttxt,就用下面的源代码: If Dir("D:\texttxt",vbHidden)<>"" Then Msgbox "找到Texttxt隐藏文件" End If 判断件夹是否存,与判断隐藏文件的方法一样,可用下列语句: Dir("文件夹路径",vbDirectory)<>"" 例如,要判断文件D:\Backup是否存在,源代码如下: If Dir("D:\Backup",vbDirectory)<>"" Then Msgbox "文件夹:D:\Backup 存在!" End If 二、在VB的编程,也会用到利用应程序时生成文件夹。可以利用下面的言句生成文件夹: MkDir "文件夹路径" 例如:在应用程序根目录下,生成Backup文件夹。在生成之前先判断该文件夹否存在。源代码如下: Dim BackupPath As String Select Case Right(AppPath,1) '判断路径是否包含'\' case '\': BackupPath = AppPath & "Backup" case Else BackupPath = AppPath & "\Backup" End Select If Dir(BackuPath,vbDirectory)="" Then '文件夹不存在 MkDir BackuPath '在应用程序根目下,创建文件夹Backup End If

你贴的这个函数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("atxt")==0)printf("不存在!");
else printf("存在!");
如果你真想用PathFileExists这个函数,那么也很简单,LPCTSTR你可以简单理解为就相当于char,这是windows封装的一个数据类型。_in是一个修饰符,表示参数是传入给PathFileExists用的而不是由PathFileExists传出来的。这个函数可以这样用:
if(PathFileExists("atxt")==FALSE)printf("不存在!");
else printf("存在!");
用这个函数时注意加头文件<windowsh>
有问题请继续追问啊

SHELL 判断中-a -z意义 [ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d FILE ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。 [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。 [ -h FILE ] 如果 FILE 存在且是一个符号连接则为真。 [ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。 [ -p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。 [ -r FILE ] 如果 FILE 存在且是可读的则为真。 [ -s FILE ] 如果 FILE 存在且大小不为0则为真。 [ -t FD ] 如果文件描述符 FD 打开且指向一个终端则为真。 [ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。 [ -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。 [ -x FILE ] 如果 FILE 存在且是可执行的则为真。 [ -O FILE ] 如果 FILE 存在且属有效用户ID则为真。 [ -G FILE ] 如果 FILE 存在且属有效用户组则为真。 [ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。 [ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read则为真。 [ -S FILE ] 如果 FILE 存在且是一个套接字则为真。 [ FILE一 -nt FILE二 ] 如果 FILE一 has been changed more recently than FILE二, or 如果 FILE一 exists and FILE二 does not则为真。 [ FILE一 -ot FILE二 ] 如果 FILE一 比 FILE二 要老, 或者 FILE二 存在且 FILE一 不存在则为真。 [ FILE一 -ef FILE二 ] 如果 FILE一 和 FILE二 指向相同的设备和节点号则为真。 [ -o OPTIONNAME ] 如果 shell选项 “OPTIONNAME” 开启则为真。 [ -z STRING ] “STRING” 的长度为零则为真。 [ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。 [ STRING一 == STRING二 ] 如果二个字符串相同。 “=” may be used instead of “==” for strict POSIX compliance则为真。 [ STRING一 != STRING二 ] 如果字符串不相等则为真。 [ STRING一 STRING二 ] 如果 “STRING一” sorts before “STRING二” lexicographically in the current locale则为真。 [ STRING一 > STRING二 ] 如果 “STRING一” sorts after “STRING二” lexicographically in the current locale则为真

判断客户端文件时,可以用var fso,s=filespec; // filespec="C:/path/myfiletxt"fso=new ActiveXObject("ScriptingFileSystemObject");if(fsoFileExists(filespec))s+=" exists";elses+=" doesn't exist";alert(s);判断服务器端(网络文件)时,可以用var xml>

File类自带判断文件(或者路径)是否存在的方法。举个例子:

String path = "D:\\";
String filename = "testtxt";
File file = new File(path+filename);
if(fileexists()) {
    Systemoutprintln("文件"+filename+"存在");
}else {
    Systemoutprintln("文件"+filename+"不存在")
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13372061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存