读取unicode日志文件并清除记录的垃圾文件
//读取unicode文件,并清除记录的垃圾文件
//参数1:日志文件路径
bool ReadFilePath(const wchar_t *DataFilePath)
{
wchar_t ChBuffer = L'\0'; //将要从文件读取的单个字符
wchar_t CleanFilePath[] = L"\0"; //将要清除的垃圾文件路径
DWORD ReadNumber = ; //已经读取的路径拥有的字符数量
DWORD dwReadSize = ;//已经读取多少数据 HANDLE handle_File = CreateFile(DataFilePath,
GENERIC_READ,
,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL); while(ReadFile(handle_File,&ChBuffer,,&dwReadSize,NULL))
{
if(dwReadSize == )
{
wprintf(L"检测到文件结尾\n");
break;
} if(ChBuffer == L'\r')
continue;
if(ChBuffer == L'\n')
{
CleanFilePath[ReadNumber] = L'\0';
wprintf(L"已清除%s\n",CleanFilePath);
DeleteFile(CleanFilePath);
ReadNumber = ;
}
else
CleanFilePath[ReadNumber++] = ChBuffer; }
// 释放文件对象资源
CloseHandle(handle_File) ;
}
一开始因为不了解,使用了_wfopen_s,fgetwc系列函数,结果遇到了unicode文本乱码bug
然后通过,谷歌,msdn了解了,CreateFile,和ReadFile函数
使用CreateFile获取句柄,ReadFile读取文本中单个字符,并判断参数&dwReadSize是否为0来检测是否到了文件结尾
BOOL WINAPI ReadFile(
_In_ HANDLE hFile, //文件句柄
_Out_ LPVOID lpBuffer, //读写缓冲区
_In_ DWORD nNumberOfBytesToRead, //读取多少数据
_Out_opt_ LPDWORD lpNumberOfBytesRead,//已经读取了多少数据
_Inout_opt_ LPOVERLAPPED lpOverlapped//异步读取结构
); HANDLE hFile 文件句柄,通过CreateFile来获得
LPVOID lpBuffer 保存读取的字符
DWORD nNumberOfBytesToRead,一个wchar_t字符为2个数据
LPDWORD lpNumberOfBytesRead, 为0时为文件结尾
LPOVERLAPPED lpOverlapped //一般为空
读取unicode日志文件并清除记录的垃圾文件的更多相关文章
- 清除windows系统垃圾文件简易脚本(bat)
@echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %sy ...
- Ajax实现文件上传的临时垃圾文件回收策略
转载请注明原文出处:http://www.cnblogs.com/ygj0930/p/6126240.html 在我们web开发过程中,一个很重要的技术就是Ajax(异步传输).Ajax通过把数据从网 ...
- Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】
打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...
- Creating Dialogbased Windows Application (4) / 创建基于对话框的Windows应用程序(四)Edit Control、Combo Box的应用、Unicode转ANSI、Open File Dialog、文件读取、可变参数、文本框自动滚动 / VC++, Windows
创建基于对话框的Windows应用程序(四)—— Edit Control.Combo Box的应用.Unicode转ANSI.Open File Dialog.文件读取.可变参数.自动滚动 之前的介 ...
- 非Unicode工程读取Unicode文件
MyUnicodeReader.h #pragma once /******************************************************************** ...
- .Net写txt文件-简单的记录执行日志信息代码
在执行一些批量操作时,想记录一些执行日志信息,越简单方便越好啊.提供一个常用的简单方法,将信息记录在txt文件里: public static void log(string content, str ...
- last与lastb命令 读取的日志文件
在linux系统中,last与lastb命令用来列出目前与过去登录系统的用户相关信息.指令英文原义: last, lastb - show listing of last logged in user ...
- Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法
转载:https://blog.csdn.net/clementad/article/details/47168573 2015-18-01修改:增加 apache commons io 处理方法. ...
- Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题
在Windows下用文本编辑器创建的文本文件,如果选择以UTF-8等Unicode格式保存,会在文件头(第一个字符)加入一个BOM标识. 这个标识在Java读取文件的时候,不会被去掉,而且Stri ...
随机推荐
- Beego orm 模型字段与数据库类型的对应
深度学习,ORM 推荐的对应数据库类型,在此列出,自动建表功能也会以此为标准.默认所有的字段都是 NOT NULL MySQL go mysql int, int32-设置auto或者名称为Id in ...
- Linux中安装PostgreSQL-10.1
环境说明 Linux版本:CentOS Linux release 7.6.1810 (Core) PostgreSQL版本:PostgreSQL-10.1 PostgreSQL下载网址:https: ...
- x86—EFLAGS寄存器详解(转载)
鉴于EFLAGS寄存器的重要性,所以将这一部分内容从处理器体系结构及寻址模式一文中单独抽出另成一文,这部分内容主要来自Intel Developer Mannual,在后续的内核系列中遇到的许多和EF ...
- codeforces 817 D. Imbalanced Array(单调栈+思维)
题目链接:http://codeforces.com/contest/817/problem/D 题意:给你n个数a[1..n]定义连续子段imbalance值为最大值和最小值的差,要你求这个数组的i ...
- PAT 天梯杯 L2-020 功夫传人
L2-020. 功夫传人 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来 ...
- 【原创】(三)Linux paging_init解析
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- Unsolved输入格式错误1022
https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336
- @PathVariable性能损耗分析
前端时间参与了一次业务线排障,是接口服务并发性能比较差,性能损耗大的问题,我经过几次研究分析和压测,确定了故障源是@PathVariable耗时过长引起的. @PathVariable使用形式: @R ...
- java中父类子类静态代码块、构造代码块执行顺序
父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class ...
- 在asp.net core中使用托管服务实现后台任务
在业务场景中经常需要后台服务不停的或定时处理一些任务,这些任务是不需要及时响应请求的. 在 asp.net中会使用windows服务来处理. 在 asp.net core中,可以使用托管服务来实现,托 ...