在 C 中的子文件夹中保存/读取文件 (.dat)
Posted
技术标签:
【中文标题】在 C 中的子文件夹中保存/读取文件 (.dat)【英文标题】:Save to/read from file (.dat) in a subfolder in C 【发布时间】:2015-02-03 22:00:21 【问题描述】:我基本上是在尝试写入/读取 C 中子文件夹中的文件。有问题的文件夹位于 C:/users/me/Test/
。
我的微弱尝试的一个例子可以在下面找到。
<dirent.h>
已被收录。
DIR *dirPS = opendir("/me/Test/");
int m1[2][2] = 7,2,4,3;
FILE *fout = fopen("m1.dat", "wb");
fwrite(m1, sizeof(m1), 1, fout);
fclose(fout);
所有文件最终都在me
下,而不是在me/Test
下。
请帮忙?
【问题讨论】:
【参考方案1】:所有文件最终都在我之下,而不是在我/测试之下。
看起来您正在使用“C:/users/me”的当前目录运行程序。
你可以使用:
FILE *fout = fopen("Test/m1.dat", "wb");
在“C:/users/me/Test”下创建文件。
您不要在此用例中使用 opendir()
。没有任何帮助。
在执行此操作之前,请确保该目录存在并且您有权在其中创建文件。
【讨论】:
【参考方案2】:opendir()
函数不会更改工作目录。它只是为您提供了一个句柄,您可以通过该句柄检查目录条目。您可以改用chdir()
,但最好在打开文件时指定完整路径:
FILE *fout = fopen("/me/Test/m1.dat", "wb");
如果当前工作目录位于不同的驱动器上,这可能仍然会让您感到困惑,但否则它应该可以工作。
【讨论】:
@userjuicer,我无法在您的实际环境中测试您的实际代码,但我非常有信心地说,导致该错误的不是我指定给您的fopen()
调用。事实上,我在我的环境中最接近它的可能版本编译得很好并且运行没有错误。在调试器中运行你的,找出你的错误真正发生在哪里。以上是关于在 C 中的子文件夹中保存/读取文件 (.dat)的主要内容,如果未能解决你的问题,请参考以下文章
使用torch7从本地磁盘读取图像,而这些图像保存在不同的子文件夹中?
java中怎样将视频文件转换成二进制文件再转换回视频文件?求具体代码!
Kotlin 的子线程从asstes中读取文件保存到手机本地