c ++将文件地址保存到char []

时间:2016-07-13 21:29:13

标签: c++

我有一个问题,如果我想保存

char FileDirect[] = "C:\\Program Files\\"

所以使用cout打印我

  

C:\ Program Files \

image

并编辑此文本也不起作用

char File[MAX_PATH], FileEdit[MAX_PATH], MoveDirect[MAX_PATH] = "C:\\Program Files\\";
short Seartch = 0, Slash = 0, MoveDirectChar = strlen(MoveDirect);
cout << MoveDirect << "\n";
GetModuleFileName(NULL, File, MAX_PATH);
for (int i = 0; i < 260; i++)
{
    if (File[i] == '\\')
    {
        FileEdit[i + Slash] = '\\';
        ++Slash;
        ++Seartch;
        FileEdit[i + Seartch] = File[i];
    }
    else
    {
        FileEdit[i + Seartch] = File[i];
    }
}
for (int i = 260; i > 0; i--)
{
    if (File[i] == '\\')
    {
        for (int b = 0; i < 260; b++)
        {
            ++i;
            ++MoveDirectChar;
            MoveDirect[MoveDirectChar] = File[i];
        }
        break;
    }
}
MoveFile(FileEdit, MoveDirect);
cout << File << "\n";
cout << FileEdit << "\n";
cout << MoveDirect << "\n";
cin.get();
return 0;

1 个答案:

答案 0 :(得分:0)

如果我正确地阅读您的代码,看起来您正在尝试提取调用程序的文件名(ConsoleApplication1.exe),将其附加到MoveDirect缓冲区的末尾({ {1}}),然后将程序文件移动到新文件名(C:\Program Files)。

如果是这样,那么您的第一个循环可以用Win32 API PathFindFileName()函数替换,第二个循环可以用PathAppend()函数替换。

C:\Program Files\ConsoleApplication1.exe