导航:首页 > 文件教程 > vc判断路径文件

vc判断路径文件

发布时间:2022-12-23 05:32:03

❶ VC++如何检测文件是否存在

VC++ 判断文件是否存在的方法有:

1. 使用_access函数,函数原型为:
int _access( const char *path, int mode );

2. 使用CreateFile函数,函数原型为:
HANDLE CreateFile( LPCTSTR lpFileName, //pointer to name of the file DWORD dwDesiredAccess, // access (readwrite) modeDWORD dwShareMode, // share mode LPSECURITY_, // pointer to security attributes DWORD dwCreationDisposition, //how to create DWORD dwFlagsAndAttributes, // file attributes HANDLE hTemplateFile //handle to file with attributes to // );

3. 使用FindFirstFile函数,函数原型为:
HANDLE FindFirstFile( LPCTSTR lpFileName, //pointer to name of file to search for LPWIN32_FIND_DATA lpFindFileData // pointer to returned information );

4. 使用GetFileAttributes函数,函数原型如下:

DWORD GetFileAttributes( LPCTSTRlpFileName // pointer to the name of a file or directory );

5. 使用Shell Lightweight Utility APIs函数。
PathFileExists()专门判断文件和目录时否存在的函数文件名可读性比较强还可以判断目录是否存在Header: Declared in Shlwapi.h ,Import Library: Shlwapi.lib 。
方法1:
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
void main( void ) {
if( (_access( "D:\\a.txt", 0 )) != -1 ) {
printf( "File ACCESS.C exists\n" );
if( (_access( "ACCESS.C", 2 )) != -1 )
printf( "File ACCESS.C has write permission\n" ); } }
方法2:
if (INVALID_HANDLE_VALUE != CreateFile("D:\\a.txt", GENERIC_READ,
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) {
AfxMessageBox("File ACCESS.C exists\n"); }
方法3:

#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
printf ("Target file is %s.\n", argv[1]);
hFind = FindFirstFile(argv[1], &FindFileData);
if (hFind == INVALID_HANDLE_VALUE) {
printf ("Invalid File Handle. GetLastError reports %d\n", GetLastError ()); return (0); }
else {
printf ("The first file found is %s\n", FindFileData.cFileName); FindClose(hFind);
return (1); } }
方法4:
if (GetFileAttributes("c:\\1.txt") == -1)
MessageBox(0."Invalid File ","hehe",0)
else
MessageBox(0."The first file found ","haha",0)
方法5:
if (INVALID_HANDLE_VALUE != CreateFile("D:\\a.txt", 0, 0, NULL, OPEN_EXISTING, 0, NULL)) {
AfxMessageBox("File exists\n");
}

❷ vc 判断目录是否存在 创建

注意,目录不能自动递归创建,必须一级一级的创建

BOOLIsDirExist(LPCTSTRszDir)
{
HANDLEhFile=::CreateFile(szDir,FILE_READ_ATTRIBUTES,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS,NULL);
if(INVALID_HANDLE_VALUE==hFile)
{
returnFALSE;
}
::CloseHandle(hFile);
returnTRUE;
}


BOOLCreateDir(LPCTSTRszDir)
{
returnCreateDirectory(szDir,NULL);
}

❸ vc中如何判断文件路径是否存在

HANDLE WINAPI FindFirstFile(
__in LPCTSTR lpFileName,
__out LPWIN32_FIND_DATA lpFindFileData
);

参数是路径,判断返回的句柄是否有效。

❹ VC如何检测当前路径文件列表

首先通过GetCurrentDirectory获取当前路径,
然后通过CFindFile类的FindFile和FindNextFile、GetFileName就可以遍历当前路径的所有文件。

❺ VC环境中用C语言查找当前路径下的所有文件和文件夹的函数是什么

这是我的TFTP程序中的一个函数,是搜索当前盘符下的所有文件,包括文件的大小,并发送到客户端,其中就有查找当前路径下的文件,你自己挑一下,应该能完成你的需求。
void FileList(sockaddr_in sour_addr,char strStartDir[])
{
char sendbuffer[1024];
sockaddr_in destaddr;

int sourlen = 0;
int ret = 0;
int len = 0;
int flen = 0;

fd_set fdr;

unsigned short blocknum = 0;

FILE *file;
char filename[128];

strcpy(filename,strStartDir+2); /*获取文件名*/

strcat(filename,"\\*");
destaddr.sin_family = AF_INET;
destaddr.sin_port = sour_addr.sin_port;
destaddr.sin_addr.s_addr = inet_addr(desthost);//

WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(filename, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid File Handle");
}
else
{
while(FindNextFile(hFind,&FindFileData))
{
printf(FindFileData.cFileName);
printf("\r\n");
memset(sendbuffer,'\0',1024);

len = filldata(blocknum++,FindFileData.cFileName,strlen(FindFileData.cFileName),sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)&destaddr,sizeof(destaddr));

}
len = fillover(blocknum,"Over",4,sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)&destaddr,sizeof(destaddr));
FindClose(hFind);
return;
}
}

❻ VC 如何判断某目录下是否还有文件夹的存在

写个例子给你参考下吧
#include<stdio.h>
#include<string.h>
#include<io.h>
intExistSubFoloder(char*path)
{
struct_finddata_tfind_data;
intfhandle=_findfirst(path,&find_data);
if(fhandle!=-1)
{
while(_findnext(fhandle,&find_data)==0)
{
if(strcmp(find_data.name,".."))
{
if((find_data.attrib&_A_SUBDIR)==_A_SUBDIR)
{
//printf("%s ",find_data.name);
return1;
}
}
}
}
_findclose(fhandle);
return0;
}
intmain(void)
{
if(ExistSubFoloder("C:\123\*.*"))
{
printf("存在子目录! ");
}
else
{
printf("子目录,不存在! ");
}
return0;
}

❼ vc判断文件夹是否存在

VC有这么一个函数
bool PathIsDirectory(CString path)
判断你输入的路径是否为文件夹,当然也可以判断文件夹是否存在。

❽ vc怎么查找某一路径下指定名称的文件是否存在

FILE *fp = fopen(strPath, "r")

if(fp == NULL)
{
//没有同名文件
}

❾ VC怎么通过绝对路径确定一个文件或者文件夹是否存在,如果是文件存在,怎么获得该文件的大小

#include "io.h"

access("路径+文件名", 0) == -1 的时候文件不存在,否则就存在

FILE *stream= fopen("filenmae", "rb");
long curpos, length;
curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
fclose(stream);

length 就是文件长度

❿ VC++通过绝对路径判断是文件还是文件夹的问题

你的错误在于,FindFirstFile的第一个参数,这个参数不能是具体文件名,而应该是这样:

filePath=_T("f:\aaa\*.*");

注意,你要遍历,那么必须是*.*或者*.txt之类的字符串,然后在循环中使用FindNextFile来获取下一个。

阅读全文

与vc判断路径文件相关的资料

热点内容
如何看懂html代码 浏览:590
文件形式下图片后缀 浏览:276
iphone6plus短信铃声 浏览:309
迅雷下载文件名tddownload 浏览:767
如何让路由器网络更加通畅 浏览:903
ai打开文件出现黑屏 浏览:602
学网站需要多少钱 浏览:436
东方年代记9章图形代码 浏览:397
小米平板2win10刷miui教程 浏览:204
wordpress时区 浏览:96
手机如何录制音频文件 浏览:594
excel数据相对超链接怎么用 浏览:799
word乱码修复器免费 浏览:101
夏花网站存在多少年了 浏览:671
无线模块下载哪个app 浏览:584
河北银行app怎么查开户行 浏览:936
华为路由器的数据配置文件 浏览:508
文件名字复制为路径导入表格 浏览:324
点击电脑桌面文件总是跳出磁盘 浏览:857
桌面文件不刷新 浏览:114

友情链接