处理大数据,读写大于4GB的文件,不要告诉我用内存映射的方法;

处理大数据,读写大于4GB的文件,不要告诉我用内存映射的方法;,第1张

C语言的文件长度获取函数最大值到4GB就溢出了。

用windows api吧,获取文件长度GetFileSize分为高地位分别从返回值和参数返回。

写入时可通过WriteFile的lpOverlapped参数设置偏移值,能支持更大的文件。

参数虽然多一点,可是总能解决你的问题。如果调用的地方很多,你可以把这几个函数封装一下,很多参数调用时都是一样的。希望对你有帮助。

DWORD WINAPI GetFileSize(

__in HANDLE hFile,

__out_opt LPDWORD lpFileSizeHigh

);

BOOL WINAPI WriteFile(

__in HANDLE hFile,

__in LPCVOID lpBuffer,

__in DWORD nNumberOfBytesToWrite,

__out_opt LPDWORD lpNumberOfBytesWritten,

__inout_opt LPOVERLAPPED lpOverlapped

);

HANDLE WINAPI CreateFile(

__in LPCTSTR lpFileName,

__in DWORD dwDesiredAccess,

__in DWORD dwShareMode,

__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,

__in DWORD dwCreationDisposition,

__in DWORD dwFlagsAndAttributes,

__in_opt HANDLE hTemplateFile

);

Requirements

Minimum supported clientWindows XP

Minimum supported serverWindows Server 2003

HeaderFileAPIh (include Windowsh);WinBaseh on Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP (include Windowsh)

LibraryKernel32lib

DLLKernel32dll

Unicode and ANSI namesCreateFileW (Unicode) and CreateFileA (ANSI)

用C语言的风格:FILE fp = fopen("","");

fseek(SEEK_END);//跳到文件尾

int lenth = ftell(fp);//获得文件内部指针位置

lenth就是当前文件大小,如果lenth == -1,则文件为空

gbase是一种数据库系统,可以在其中导入Windows文件,其具体步骤如下:

1 打开gbase,登录数据库系统。

2 创建一个表来存储Windows文件的数据,例如文件名、文件路径、文件大小等。

3 通过SQL语句将Windows文件的数据插入到该表中。可以使用INSERT语句将数据逐行插入,也可以使用LOAD DATA INFILE语句进行批量插入。

4 在插入数据时,需要指定Windows文件的路径,可以使用Windows文件资源管理器中的复制路径功能来获取文件的路径,然后在SQL语句中使用该路径。

5 对于大文件,建议使用BLOB类型来存储文件数据,可以使用BINARY()函数将文件内容转换为二进制格式,然后插入到BLOB类型的字段中。

6 在插入完成后,可以使用SELECT语句查询该表中的数据,验证导入是否成功。

注意事项:

1 在插入数据时,需要考虑文件大小、文件类型、文件编码等因素,以避免出现数据丢失或格式不正确的情况。

2 对于敏感数据,需要进行加密保护,以保证数据安全性。

3 在使用LOAD DATA INFILE语句进行批量导入时,要特别注意文件路径和文件格式等参数的设置,以确保数据导入成功。

以上就是关于处理大数据,读写大于4GB的文件,不要告诉我用内存映射的方法;全部的内容,包括:处理大数据,读写大于4GB的文件,不要告诉我用内存映射的方法;、C++中怎样获取一个文件的大小,怎样判断一个文件是否为空(文件存在,但是没有内容)、gbase怎么导入window文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9800688.html

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

发表评论

登录后才能评论

评论列表(0条)

保存