读取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 ...
随机推荐
- Java集合框架之Set接口浅析
Java集合框架之Set接口浅析 一.java.util.Set接口综述: 这里只对Set接口做一简单综述,其具体实现类的分析,朋友们可关注我后续的博文 1.1Set接口简介 java.util.se ...
- Oracle在VMware虚拟机安装的配置
我是在VMware虚拟机上安装的Oracle , 我只说说我踩过的几个坑吧. VMware的虚拟网络编辑器 仅主机模式相当于在你的主机和虚拟机之间建立了一个局域网,里面只有你的主机和虚拟机 可以通过D ...
- UML类图详解和示例
ps:博客园markdown不能自动生成列表,更好的阅读体验可访问我的个人博客http://www.isspark.com/archives/UMLDescription UML类图概述 什么是UML ...
- Flink的Job启动TaskManager端(源码分析)
前面说到了 Flink的JobManager启动(源码分析) 启动了TaskManager 然后 Flink的Job启动JobManager端(源码分析) 说到JobManager会将转化得到 ...
- [翻译] .NET Core 3.0 Preview 9 发布
原文: Announcing .NET Core 3.0 Preview 9 今天,我们宣布推出 .NET Core 3.0 Preview 9.就像 Preview 8 一样,我们专注于打磨 .NE ...
- 2019DX#10
Solved Pro.ID Title Ratio(Accepted / Submitted) 1001 Minimum Spanning Trees 22.22%(2/9) 1002 Lin ...
- Codeforces Round #364 (Div. 2) D. As Fast As Possible 数学二分
D. As Fast As Possible 参考:https://blog.csdn.net/keyboardmagician/article/details/52769493 题意: 一群大佬要走 ...
- HDU-3038How Many Answers Are Wrong权值并查集
How Many Answers Are Wrong 题意:输入一连串的区间和,问和前面的矛盾个数: 思路:我在做专题,知道是并查集,可是还是不知道怎么做,学了一下权值并查集和大佬的优秀思路,感觉回了 ...
- CodeForces 620D Professor GukiZ and Two Arrays 双指针
Professor GukiZ and Two Arrays 题解: 将a数组都sort一遍之后, b数组也sort一遍之后. 可以观察得到 对于每一个ai来说, 整个数组bi是一个V型的. 并且对于 ...
- kick start 2019 round D T2题解
题目大意:由N个房子围成一个环,G个人分别顺时针/逆时针在房子上走,一共走M分钟,每分钟结束,每个人顺/逆时针走到相邻的房子.对于每个房子都会记录最后时刻到达的人(可能是一群人).最终输出每个人会被几 ...