从dir中的指定文件夹打开文件。其中.exe是

时间:2013-06-28 21:34:00

标签: c++ file location directory

我需要帮助打开名为"编辑数据"的文件夹中的文件。它与我正在制作的.exe位于同一个文件夹中。我不确定如何在c ++中处理文件夹中的文件打开。 我想要的例子。

.... \ Program \ Edit Data< - 我想从这个文件夹中打开一个文件并进行编辑

.... \ Program \ program.exe< - .exe的位置

我需要这样做,因为我在此文件夹中有多个文件供用户编辑。 我首先尝试使用名为Mod的Mod.dat文件夹,但我没有成功。

我当前代码的一半:

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cmath>
#include <cstring>

using namespace std;


int main ()
{


string filename;//file that will be changed
//string path = "Mod/Mod.dat";//Path of Mod.dat that I could not get to work
//string file = path + "Mod.dat";//this was for opinging Mod.dat from folder call Mod, didnt work
long size;
char* memblock;
cout << " Enter a file to be modded by Mod.dat  ";
cin >> filename;

ofstream infile ( filename ,std::ofstream::binary | ofstream::in);//the file that will be opened and changed)
//"filename: I want to open it from a folder called Edit Data

ifstream modFile ( "Mod.dat" , ifstream::binary);// (mod.dat is the file that i get the first 1840 hex values from)

if (!infile){
    cout << " Couldn't open " << filename << endl;
}

if (!modFile){
    cout << " Couldn't open " << modFile << endl;
}

我不知道这是否重要,但我使用Visual Studios,我的程序打开&#34; infile&#34;并编辑它。 我还想从Edit Data文件夹打开大约1000个文件,并使用mod.dat编辑它们。 (编辑:截至目前,我主要只需要知道如何从文件夹中读取单个文件。) 还有一种方法,我可以制作一个文本文件,其中包含当我将它添加到循环内部时ofstream读取的文件名和位置?

文件的外观如下:          .... \ Program \ Edit Data \ 12a.dat          .... \ Program \ Edit Data \ m9i3.dat          .... \ Program \ Edit Data \ 2020.dat

1 个答案:

答案 0 :(得分:1)

您可以使用dirent.h获取Edit Data文件夹中所有文件的数组,之后只需打开* .dat文件。

或者您可以在X位置打开一个文件,其中包含您要编辑的文件列表及其文件路径,请记住路径是完整的(“C:\ Program Files \ Edit Data”)或变量等as(“.. \ Edit Data”)。