【发布时间】:2016-12-05 23:22:52
【问题描述】:
我想在我的计算机上的特定位置创建并写入文件。我有一个相当大的项目,所以我将发布我坚持的部分。
f = fopen(FileName, "w");
FileName = 包含我要写入的文件名的变量。
问题是它正在创建此文件并将其存储在与我的项目相同的目录位置。我想将它存储在位于同一目录中的名为Individual 的子目录中。有什么想法吗?
【问题讨论】:
我想在我的计算机上的特定位置创建并写入文件。我有一个相当大的项目,所以我将发布我坚持的部分。
f = fopen(FileName, "w");
FileName = 包含我要写入的文件名的变量。
问题是它正在创建此文件并将其存储在与我的项目相同的目录位置。我想将它存储在位于同一目录中的名为Individual 的子目录中。有什么想法吗?
【问题讨论】:
你可以通过两种方法解决:
方法一)改变目录(例如使用chdir()方法)
方法 2) 将path 添加到文件名的开头。
【讨论】:
如果您需要在代码中的多个位置使用相同的逻辑,请编写一个名为 getFileNameInDirectoryToSave 的函数。
调用fopen之前的函数。
void getFileNameInDirectoryToSave(char const* in, char* out)
{
sprintf(out, "Individual/%s", in);
}
char fileNameToSave[FILESIZE]; // Make FILESIZE large enough.
getFileNameInDirectoryToSave(FileName, fileNameToSave);
fopen(fileNameToSave, "w");
如果您只需要该功能一次,则可以使用相同的逻辑。
char fileNameToSave[FILESIZE]; // Make FILESIZE large enough.
sprintf(fileNameToSave, "Individual/%s", FileName);
fopen(fileNameToSave, "w");
【讨论】:
PATH_MAX 推荐FILESIZE,但这只是不同品牌的脚枪。