我使用TOpenDialog选择要打开的文件,并希望使用InitialDir属性指定一个文件夹:
FILE* fp;
OpenDialog1->InitialDir= "../data";
if (OpenDialog1->Execute())
{
fp=fopen(OpenDialog1->FileName.c_str(),"r");
...
fclose(fp);
}但是,当我使用一个相对路径打开另一个文件时,我看到相对路径更改为使用TOpenDialog选择的文件夹。但我不希望TOpenDialog影响相对路径。
fp=fopen("AnotherFile.txt","r"); //looks in folder "data"
...
fclose(fp)是否有任何方法可以防止TOpenDialog更改当前工作路径,或者是保存路径然后恢复路径的唯一方法?
发布于 2022-06-06 20:15:38
该对话框在浏览时更改当前的工作目录。这是按照设计的工作,你不能阻止它。
但是,当对话框关闭时,您可以通过在其ofNoChangeDir属性中启用Options标志来恢复原始的当前工作目录:
在用户单击OK后,将当前目录重置为文件选择对话框打开之前的任何目录。
不过,首先您不应该依赖于相对的文件路径。始终使用绝对文件路径打开文件。
https://stackoverflow.com/questions/72516821
复制相似问题