C++通过路径名得到文件名 生成UNL文件.cpp

#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <functional>
using namespace std;

int main (void)
{
    char line[256] = {0};   //文件每一行
    char dir[256] = {0};    //行内容中文件名所在路径
    char *filePos = NULL;   //指向最后一个“\”字符
    char *dirPos = NULL;    //指向倒数第二个“\”字符
    int dirLen = 0;   //行内容中文件名所在路径字符的长度
   
    ifstream unlFile;
    char *unlFileName = "UNL维护.txt";

    //只读方式读取文件
    unlFile.open(unlFileName, ios::in);

    ofstream tempUnl;
    char *tempUnlName = "temp.unl";

    //在打开文件前将文件清空,文件不存在则创建
    tempUnl.open(tempUnlName, ios::trunc);
   
    while(!unlFile.eof())
    {
        memset(line, 0, sizeof(line));
       
        //该行字符达到256个或遇到换行就结束该行读取
        unlFile.getline(line, 256, '\n');  //得到文件中的一行

        //判断当前行是否为路径名,不是则不处理
        string strLine(line);
        //没找到时位置取最大值
        string::size_type pos = strLine.find("\\");
        if (pos == string::npos)
        {
            continue;
        }
       
        filePos = strrchr(line, '\\');  //得到最后一个“\”字符和其后面的内容
       
        tempUnl << (filePos+1) << endl;
    }
   
    unlFile.close();
    tempUnl.close();
   
    return 0;

你可能感兴趣的:(C++,技巧,文件)