如何创建与程序位置对应的文件?

时间:2016-11-24 20:54:21

标签: c++ windows file

有没有办法使用C ++和C ++程序的位置在计算机上创建文件?我希望能够在多台计算机上使用此程序,但每台计算机都有自己的不同目录。例如,如果我想创建位于用户目录上的test.txt文件,有一种方法可以将文件的路径放在与程序文件的位置相对应的位置,因为" user"用户名不同。

1 个答案:

答案 0 :(得分:-1)

只要您在Windows上,就可以使用API​​ GetUserName,然后使用SetCurrentDirectory API更改工作目录,然后使用CreateFile或fstream在那里创建文件:

#include <iostream>
#include <windows.h>
#include <fstream>
#include <string>
using namespace std;


int main()
{

    ULONG len = 50;
    LPSTR lpBuffer = (LPSTR)GlobalAlloc(GPTR, len);
    GetUserName(lpBuffer, &len);
    cout << lpBuffer << endl;
    // don't forget to clean when you're done:

    string str = "C:\\Users\\";
    str += lpBuffer;
    str += "\\test.txt";
    cout << str << endl;

    ofstream out(str.c_str());
    if(out.fail())
        perror("Opening failed");
    out << "Hello " << lpBuffer;

    out.close();

    GlobalFree(lpBuffer);


    GlobalFree(lpBuffer);

    return 0;
}

此程序获取当前用户名并在其文件夹中创建文件并在其中写入“Hello”'yourusername'