window下遍历文件并修改

今天需要写一个遍历文件夹下的所有文件,试了试以前的方法竟然报错了。重新改了一下。

#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <fstream>
#include <iterator>
#include <string>
#include <time.h>
#include <math.h>
using namespace std;

wchar_t* CharToWchar(const char* c)
{
    wchar_t *m_wchar;
    int len = MultiByteToWideChar(CP_ACP, 0, c, strlen(c), NULL, 0);
    m_wchar = new wchar_t[len + 1];
    //映射一个字符串到一个宽字符(unicode)的字符串
    MultiByteToWideChar(CP_ACP, 0, c, strlen(c), m_wchar, len);
    m_wchar[len] = ‘\0‘;
    return m_wchar;
}
char* WcharToChar(const wchar_t* wp)
{
    char *m_char;
    //映射一个unicode字符串到一个多字节字符串
    int len = WideCharToMultiByte(CP_ACP, 0, wp, wcslen(wp), NULL, 0, NULL, NULL);
    m_char = new char[len + 1];
    WideCharToMultiByte(CP_ACP, 0, wp, wcslen(wp), m_char, len, NULL, NULL);
    m_char[len] = ‘\0‘;
    //printf("my char %s\n", m_char);
    return m_char;
}

wchar_t* StringToWchar(const string& s)
{
    const char* p = s.c_str();
    return CharToWchar(p);
}

void operate(string name)
{

    ifstream file(name);
    string tempStr;
    int i = 0;

    while (file) {
        string line;
        getline(file, line);
        cout << line << endl;
        if (line == "")break;
        if (i == 0) {
            tempStr = line;
            tempStr += "第一行加这个\n";
        }
        else {
            tempStr += line;
            tempStr += "其他行\n";
        }
        i++;
    }
    ofstream outfile(name, ios::out | ios::trunc);
    outfile << tempStr << endl;
}

int main()
{
    int j = 0;
    char* Path = "files/*.*";
    HANDLE hFile;
    LPCTSTR lp = Path;
    WIN32_FIND_DATA pNextInfo;
    hFile = FindFirstFile(lp, &pNextInfo);
    if (hFile == INVALID_HANDLE_VALUE) {
        cout << "failed" << endl;
        exit(-1);//搜索失败
    }
    cout << "路径名:" << Path << endl;

    do {
        //必须加这句,不然会加载.和..的文件而加载不了图片,
        if (pNextInfo.cFileName[0] == ‘.‘)continue;
        string name = pNextInfo.cFileName;
        cout << name << endl;
        operate(".\\files\\"+name);
        j++;
    } while (FindNextFile(hFile, &pNextInfo));
    system("pause");
    return 0;

}

其中 files 为 文件夹名称。

程序功能: 遍历files下的所有文件,并在每行的末尾添加数据,第一行与其他行添加的内容不同。

时间: 2024-10-23 01:37:33

window下遍历文件并修改的相关文章

linux下遍历文件夹---opendir等用法

首先要说肯定是头文件,#include <sys/types.h>   #include <dirent.h> linux下遍历文件夹需要用到以下几个函数,其中有三个是必须的,其它几个是可选的. DIR* opendir(const char * name);   失败返回NULL.成功返回DIR结构体.注意DIR前面没有struct,如果加上编译器会warning struct dirent *readdir(struct DIR* dir);   失败返回NULL. void

window下gitbase乱码和修改编辑器gvim

修改乱码 进入目录:配置目录 /etc 1. 编辑 gitconfig 文件 文件中增加内容 [gui] encoding = utf-8 #代码库统一使用utf-8 [i18n] commitencoding = GB2312 #log编码,window下默认gb2312,声明后发到服务器才不会乱码 [svn] pathnameencoding = GB2312 #支持中文路径 2. 编辑 git-completion.bash 文件 最下面添加 alias ls='ls --show-con

C++下遍历文件夹

编写程序遍历文件夹及其子文件夹下所有文件,并输出到标准输出流或者文件流. 1. 先考虑在单层目录下,遍历所有文件.以C:\WINDOWS为例: 用到数据结构_finddata_t,文件信息结构体的指针. struct _finddata_t{ unsigned attrib; //文件属性 time_t time_create; //文件创建时间 time_t time_access; //文件上一次访问时间 time_t time_write; //文件上一次修改时间 _fsize_t siz

修改window本地hosts文件,修改域名指向

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析. 浏览器访问网站,要首先通过DNS服务器把要访问的网站域名解析成一个唯一的IP地址,之后,浏览器才能对此网站进行定位并且访问其数据. 操作系统规定,在进行

[moka同学笔记]window下.htacess文件 与linux下.htacess文件

windows下 # Turn on URL rewritingRewriteEngine On # Installation directoryRewriteBase / # Protect hidden files from being viewed<Files .*>    Order Deny,Allow    Deny From All</Files> # Protect application and system files from being viewedRewr

windows 下遍历文件夹

1 void reversedir(string srcDir) 2 { 3 struct _finddata_t filefind; 4 string imgName = srcDir + "\\*.*"; 5 int done=0, handle; 6 7 if(( handle =_findfirst(imgName.c_str(), &filefind)) == -1) 8 return; 9 10 while(!(done=_findnext(handle, &

cwRsync window下的跨服务器的文件同步

cwRsync 是window下的文件同步软件,可以跨服务器运行,第一次运行的时候是全部备份同步,之后的同步采用的是增量同步 这个软件分为服务端和客户端. 服务器是需要同步的文件源, 客户端相当于是备份的服务器. window下软件的安装,没什么需要注意的,服务端的安装中间有一个步骤是输入用户名和密码,这个地方需要修改,并自己记录. 服务端安装成功后,会有一个window服务,记得手动启动. 1.服务端的操作 首先打开安装目录中的rsyncd.conf文件,这是唯一关键的设置. use chro

File:迭代读取文件夹下的文件或者文件夹

在项目中,有时需要获取文件夹下的所有文件或者文件夹,以及对应的最后修改时间.下面的代码实现了迭代读取指定路径下的文件,修改时间可以自己加lastModified()方法. public class Folder { public static void main(String[] args) { String path="F:/111"; readFile(path); } /**迭代读取文件夹下所有子文件或者文件夹 * @param path 文件夹路径 */ public stat

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *