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

问题描述 投票:0回答:1

PATH 中的冒号(例如

"a:data.dat"
)在 Windows 文件系统中意味着什么。

在以下 C++ 代码中:

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

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

c++ windows file stream ntfs
1个回答
3
投票

NTFS 文件系统支持每个文件多个文件流,其中文件名和流名称由

:
分隔。每个文件都有一个默认的未命名流,但也可以有其他命名流。

您所描述的听起来像是您创建了一个文件

a
,其中包含名为
data.dat
的辅助流,然后您将数据写入该流。

当您稍后尝试读取/查看文件时,如果访问默认流而不是

data.dat
流,则看起来根本没有数据写入文件。但它确实是被写入的,您需要打开
data.dat
流才能读取其数据。

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

© www.soinside.com 2019 - 2024. All rights reserved.