读取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 ...
随机推荐
- Codeforces 1009D
题意略. 思路: 可知对于一个拥有n个点的图来说,它至少需要有n - 1条边来维持连通性,而且数字1恰好与后面的n - 1个数字互质: 至于n个点的图可以产生合法的互质边的个数的上限,我们可以通过莫比 ...
- Leetcode之深度优先搜索(DFS)专题-1123. 最深叶节点的最近公共祖先(Lowest Common Ancestor of Deepest Leaves)
Leetcode之深度优先搜索(DFS)专题-1123. 最深叶节点的最近公共祖先(Lowest Common Ancestor of Deepest Leaves) 深度优先搜索的解题详细介绍,点击 ...
- 基于JRebel开发的MySQL Explain插件
前言 我们在使用数据库时,为了使业务系统性能达到最优,往往都需要避免慢SQL查询,不能等到线上告警了再排查是否为慢SQL导致.在开发阶段,每个开发人员就应该针对自己写的SQL看是否可能为慢SQL,从而 ...
- cogs2223. [SDOI2016 Round1] 生成魔咒(后缀数组 hash 二分 set
题意:对一个空串每次在后面加一个字符,问每加完一次得到的字符串有几个不同的子串. 思路:每个子串都是某个后缀的前缀,对于每个后缀求出他能贡献出之前没有出现过的前缀的个数,答案累加就行. 要求每个后缀的 ...
- ACdream1726-A Math game+(DFS+二分)+(DFS+前缀和)
传送门 官方题解:http://acdream.info/topic?tid=4246 参考:https://www.cnblogs.com/nowandforever/p/4492428.html ...
- JOBDU 1108 堆栈的使用
之所以把这道题目贴出来的原因,是因为真的有几个地方要注意的 题目1108:堆栈的使用 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:10763 解决:3119 题目描述: 堆栈是一种基本的 ...
- codeforces 808 D. Array Division(二分)
题目链接:http://codeforces.com/contest/808/problem/D 题意:有一串长度为n的数组,要求选择一个数字交换它的位置使得这串数能够分成两串连续的和一样的数组. 这 ...
- poj 2649 Factovisors 对n!进行因数分解
Factovisors Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4431 Accepted: 1086 Descr ...
- Navicat Premium基本使用
Navicat Premium基本使用 转自:https://blog.csdn.net/Yangchenju/article/details/80633055 Navicat Premium基本使用 ...
- 明明有class为什么还是报ClassNotFoundException?
描述 我们修改接口时,习惯发布一个快照版本用于测试.我们的一个服务也是发布了快照版本,然后一个jar程序要依赖这个服务,修改pom文件打包部署后,通过 java -jar 命令执行这个jar程序,然后 ...