远程文件系统客户端源码, 超过7000行C++源代码,
其中包含RF32c.dll动态库整个工程源码, 源代码文件清单如下:
\RFClient\unit_rc\CmdQueue.cpp
\RFClient\unit_rc\CmdQueue.h
\RFClient\unit_rc\RCClient.h
\RFClient\unit_rc\RCClientObj.cpp
\RFClient\unit_rc\RCClientObj.h
\RFClient\units\RFCenter.cpp
\RFClient\units\RFCenter.h
\RFClient\units\RFCExports.cpp
\RFClient\units\RFCExports.h
\RFClient\units\RFCFileObj.cpp
\RFClient\units\RFCFileObj.h
\RFClient\units\RFCFindObj.cpp
\RFClient\units\RFCFindObj.h
\RFClient\units\RFConnObj.cpp
\RFClient\units\RFConnObj.h
\RFClient\units\RFCUtils.cpp
\RFClient\units\RFCUtils.h
接口定义如下:
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* 接口相关函数 */
// 接口初始化/释放函数
void __stdcall RFCInitialize();
void __stdcall RFCUninitialize();
// 接口版本信息, 格式: "x.x.x.x (build yyyy.mm.dd)"
// AVersion 返回版本号, 如: 0x0708090A 表示 7.8.9.10
char* __stdcall RFCGetVersion(long* AVersion);
// 取当前操作的最后错误码(注: 用于 RFConnCreate, RFCFindFirst 和 RFCFileCreate)
long __stdcall RFCGetLastError();
// 接口属性操作
long __stdcall RFCGetInt(long Attrib, long* AValue);
long __stdcall RFCGetStr(long Attrib, char* AValue, long* ALen);
long __stdcall RFCSetInt(long Attrib, long AValue);
long __stdcall RFCSetStr(long Attrib, const char* AValue, long ALen);
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* 连接的相关函数 */
// 连接创建/释放
void* __stdcall RFConnCreate(const char* AHost, long APort, const char* APassword);
void __stdcall RFConnFree(void* AConnObj);
// 连接打开/关闭
long __stdcall RFConnOpen(void* AConnObj);
void __stdcall RFConnClose(void* AConnObj);
// 连接属性操作
long __stdcall RFConnGetInt(void* AConnObj, long Attrib, long* AValue);
long __stdcall RFConnGetStr(void* AConnObj, long Attrib, char* AValue, long* ALen);
long __stdcall RFConnSetInt(void* AConnObj, long Attrib, long AValue);
long __stdcall RFConnSetStr(void* AConnObj, long Attrib, const char* AValue, long ALen);
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* 文件/目录操作的相关函数 */
// 读取/设置文件属性
long __stdcall RFCGetFileAttr(void* AConnObj, const char* AFileName, long* Attrib);
long __stdcall RFCSetFileAttr(void* AConnObj, const char* AFileName, long Attrib);
// 文件存在/删除/移动文件或目录
long __stdcall RFCFileExisted(void* AConnObj, const char* AFileName);
long __stdcall RFCDeleteFile(void* AConnObj, const char* AFileName);
long __stdcall RFCMoveFile(void* AConnObj, const char* AOldName, const char* ANewName);
// 目录存在/创建/删除
long __stdcall RFCDirExisted(void* AConnObj, const char* APathName);
long __stdcall RFCCreateDir(void* AConnObj, const char* APathName, bool AForced = false);
long __stdcall RFCRemoveDir(void* AConnObj, const char* APathName, bool AForced = false);
// 磁盘操作相关函数
long __stdcall RFCDriveType(void* AConnObj, const char* ADrive, long* AType);
long __stdcall RFCDiskSpace(void* AConnObj, const char* APath,
__int64* ATotalSpace, __int64* AFreeSpace);
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* 文件查找的相关函数 */
void* __stdcall RFCFindFirst(void* AConnObj, const char* APath, TRFCFindItem* AItem);
long __stdcall RFCFindNext(void* AFindObj, TRFCFindItem* AItem);
long __stdcall RFCFindClose(void* AFindObj);
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/* 文件读写的相关函数 */
// 创建/释放文件对象
void* __stdcall RFCFileCreate(void* AConnObj, const char* AFileName, long AMode,
bool ANeedCreate, long AFileAttr);
long __stdcall RFCFileFree(void* AFile);
// 读写数据
long __stdcall RFCFileRead(void* AFile, void* ABuffer, long ASize);
long __stdcall RFCFileWrite(void* AFile, const void* ABuffer, long ASize);
// 文件定位/清除文件缓存/设置文件末尾
long __stdcall RFCFileSeek(void* AFile, long* AOffset, long AOrigin);
long __stdcall RFCFileSeek64(void* AFile, __int64* AOffset, long AOrigin);
long __stdcall RFCFileFlush(void* AFile);
long __stdcall RFCFileSetEOF(void* AFile);
// 读取文件信息
long __stdcall RFCFileGetInfo(void* AFile, TRFCFileInfo* AInfo);
long __stdcall RFCFileGetSize(void* AFile, __int64* ASize);
// 读取/设置文件时间
long __stdcall RFCFileGetTime(void* AFile, double* ACreateTime,
double* AModifyTime);
long __stdcall RFCFileSetTime(void* AFile, const double* ACreateTime,
const double* AModifyTime);