写了两个判断文件目录是否存在的函数

27 篇文章 0 订阅

Visual Basic 6:

Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10

Public Function IsFileExist(ByVal szFileName As String) As Boolean
    On Error Resume Next
    Dim ret As Long
    IsFileExist = False
    ret = GetFileAttributes(szFileName)
    If ret = -1 Then Exit Function
    IsFileExist = IIf((ret And FILE_ATTRIBUTE_DIRECTORY), False, True)
End Function

Public Function IsFolderExist(ByVal szFolderName As String) As Boolean
    On Error Resume Next
    Dim ret As Long
    IsFolderExist = False
    ret = GetFileAttributes(szFolderName)
    If ret = -1 Then Exit Function
    IsFolderExist = IIf((ret And FILE_ATTRIBUTE_DIRECTORY), True, False)
End Function

//用VC++:

bool FileExist(LPCSTR FileName)
{
    FILE* tmpFile;
    if((tmpFile=fopen(FileName,"r"))==FALSE)
    {
        return false;
    }
    else
    {
        fclose(tmpFile);
        return true;
    }
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在 C 语言中,可以使用 stat 函数判断文件的状态。这个函数需要两个参数,一个是文件的路径,另一个是一个 stat 结构体的指针。函数的返回值为 0 表示成功,-1 表示失败。 示例代码: ```c #include <sys/stat.h> #include <stdio.h> int check_file_status(const char *path) { struct stat file_stat; if (stat(path, &file_stat) == -1) { printf("Failed to get file status\n"); return -1; } // 根据 file_stat 结构体中的信息判断文件状态 return 0; } ``` 可以根据 stat 结构体中的信息,如文件类型、权限、时间等,来判断文件的状态。 请注意,在使用 stat 函数之前需要包含 sys/stat.h 头文件。 ### 回答2: 这里是一个用C语言编判断文件状态的函数示例: ```c #include <stdio.h> // 函数声明 void checkFileStatus(const char *filename); int main() { const char *filename = "example.txt"; checkFileStatus(filename); return 0; } // 函数定义 void checkFileStatus(const char *filename) { FILE *file = fopen(filename, "r"); if (file != NULL) { printf("文件存在\n"); // 获取文件大小 fseek(file, 0L, SEEK_END); long fileSize = ftell(file); printf("文件大小为:%ld字节\n", fileSize); // 获取文件访问权限 if (access(filename, R_OK | W_OK) == -1) { printf("文件不可读或不可\n"); } else { printf("文件可读可\n"); } fclose(file); } else { printf("文件存在\n"); } } ``` 这个函数接受一个文件名作为参数,然后打开文件并进行一系列的判断。首先,它检查文件是否存在,如果存在,它会使用`fseek`和`ftell`函数获取文件大小。然后,它使用`access`函数检查文件是否可读或可。最后,它关闭文件并输出相应的信息。如果文件存在,它会直接输出"文件存在"。 ### 回答3: C语言提供了一些函数和宏用于判断文件的状态,可以根据需要编一个判断文件状态的函数。以下是一个示例函数: ```c #include <stdlib.h> #include <stdio.h> #include <sys/stat.h> enum FileStatus { FILE_DOES_NOT_EXIST, FILE_IS_REGULAR, FILE_IS_DIRECTORY, FILE_IS_OTHER }; enum FileStatus checkFileStatus(const char* filename) { struct stat fileStat; if (stat(filename, &fileStat) < 0) { return FILE_DOES_NOT_EXIST; } if (S_ISREG(fileStat.st_mode)) { return FILE_IS_REGULAR; } else if (S_ISDIR(fileStat.st_mode)) { return FILE_IS_DIRECTORY; } else { return FILE_IS_OTHER; } } int main() { const char* filename = "example.txt"; enum FileStatus status = checkFileStatus(filename); switch(status) { case FILE_DOES_NOT_EXIST: printf("文件存在\n"); break; case FILE_IS_REGULAR: printf("文件是普通文件\n"); break; case FILE_IS_DIRECTORY: printf("文件是目录\n"); break; case FILE_IS_OTHER: printf("文件是其他类型\n"); break; default: printf("未知状态\n"); } return 0; } ``` 以上示例代码中定义了一个`enum FileStatus`枚举类型,表示文件的不同状态。`checkFileStatus`函数接受一个文件名作为参数,通过调用`stat`函数获取文件信息,然后根据`st_mode`成员的值判断文件的类型。最后,在`main`函数中使用`switch`语句根据文件状态打印相应的信息。 请注意,在使用这段代码前需要包含`stdlib.h`、`stdio.h`和`sys/stat.h`头文件,并在链接时添加`-lm`选项来链接数学库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值