在 Windows 文件系统中使用带冒号的文件 PATH

Using a file PATH with a colon in Windows file system

提问人:Ahmed Essam 提问时间:10/6/2023 最后编辑:Ahmed Essam 更新时间:10/7/2023 访问量:64

问:

PATH中的冒号(例如)在Windows文件系统中是什么意思。"a:data.dat"

在以下 C++ 代码中:

ofstream outfile;
outfile.open("a:data.dat");

我使用的是Windows操作系统,它在读取/写入时工作正常,但是在存储的文件名称中找不到“data.dat”部分。写入后只有一个名为“a”的文件,字节为 0。

C++ Windows 文件 NTFS

评论

2赞 PaulMcKenzie 10/6/2023
PATH中的冒号是什么意思?-- 您的操作系统 command-shell 具有这些详细信息。这看起来不像是 C++ 问题。
3赞 Martin York 10/6/2023
在某些系统上,“a:”表示特定驱动器。在其他系统上,“a:”是文件上的有效前缀。这取决于您的操作系统(或者更具体地说,操作系统正在使用的文件系统)。
1赞 Paul Sanders 10/6/2023
你在什么平台上?

答:

3赞 Remy Lebeau 10/6/2023 #1

NTFS 文件系统支持每个文件的多个文件流,其中文件名和名用 分隔。每个文件都有一个默认的未命名流,但也可以有其他命名流。:

您描述的内容听起来像是您创建了一个文件,其中包含一个名为 的辅助流,然后您将数据写入该流。adata.dat

当您稍后尝试读取/查看文件时,如果访问的是默认流而不是流,则似乎根本没有将任何数据写入文件。但它确实是写入的,您需要打开流才能读取其数据。data.datdata.dat

仅供参考,大多数应用程序对这些辅助文件流一无所知,因此它们只读取/写入默认流。这可以解释您正在经历的症状。