我有一个问题,如果我想保存
char FileDirect[] = "C:\\Program Files\\"
所以使用cout
打印我
C:\ Program Files \
并编辑此文本也不起作用
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;
答案 0 :(得分:0)
如果我正确地阅读您的代码,看起来您正在尝试提取调用程序的文件名(ConsoleApplication1.exe
),将其附加到MoveDirect
缓冲区的末尾({ {1}}),然后将程序文件移动到新文件名(C:\Program Files
)。
如果是这样,那么您的第一个循环可以用Win32 API PathFindFileName()
函数替换,第二个循环可以用PathAppend()
函数替换。
C:\Program Files\ConsoleApplication1.exe