Files
cKit/Foundation/c_File.h
T
2026-08-29 11:39:28 +08:00

75 lines
2.0 KiB
C

#ifndef INCLUDED_C_FILE_H
#define INCLUDED_C_FILE_H
#ifndef INCLUDED_C_TYPES_H
#include <c_Types.h>
#endif /*INCLUDED_C_TYPES_H*/
#ifndef INCLUDED_STDIO_H
#define INCLUDED_STDIO_H
#include <stdio.h>
#endif /*INCLUDED_STDIO_H*/
/* ------------------------------------------------------------------------------------------------------------------ */
/* */
typedef struct {
FILE* fp;
}c_File_t;
/* ------------------------------------------------------------------------------------------------------------------ */
/* */
c_err_t c_File_Open(c_File_t* file, const char* fileName, const char* mode);
void c_File_Close(c_File_t* file);
c_err_t c_File_Read(c_File_t* file, void* buffer, c_size_t buffer_size, c_size_t *read_size);
c_err_t c_File_Readline(c_File_t* file, void* buffer, c_size_t buffer_size, c_size_t *read_size);
c_err_t c_File_Write(c_File_t* file, void* buffer, c_size_t buffer_size, c_size_t *write_size);
long long c_File_Size(c_File_t* file);
c_err_t c_File_Flush(c_File_t* file);
c_err_t c_File_Seek(c_File_t* file, long long position);
c_err_t c_File_MkDirs(const char* path);
c_err_t c_File_Rmdir(const char* path);
c_err_t c_File_Rmdirs(const char* path);
c_err_t c_File_Delete(const char* fileName);
/**
* @brief 复制指定文件到目标路径(支持大文件流式拷贝)
* @param srcPath 源文件路径
* @param destPath 目标文件路径
* @return 成功返回 C_ERR_OK,失败返回对应错误码
*/
c_err_t c_File_Copy(const char* srcPath, const char* destPath);
/**
* @brief 检查指定路径的文件或目录是否存在
* @param fileName 文件的绝对路径或相对路径
* @return 存在返回 C_TRUE,不存在或无权限返回 C_FALSE
*/
c_bool_t c_File_IsExist(const char* fileName);
/**
* @brief 移动或重命名文件(支持跨分区移动保底)
* @param oldPath 旧文件路径
* @param newPath 新文件路径
* @return 成功返回 C_ERR_OK,失败返回对应错误码
*/
c_err_t c_File_Move(const char* oldPath, const char* newPath);
#endif /*INCLUDED_C_FILE_H*/