【问题标题】:NTFS + CreateFile: specify stream offset in pathname?NTFS + CreateFile:在路径名中指定流偏移?
【发布时间】:2016-07-21 14:16:14
【问题描述】:

通过CreateFile打开NTFS文件数据流时,是否可以在路径名中指定流偏移?

如果路径名以\\?\ 开头呢?

例如abcd.txt::$DATA 指定未命名流的偏移量 0*;是否可以在路径名中指定不同的偏移量**?

*从技术上讲,这也意味着偏移量等于流长度,以防 WriteFile 使用 append 调用 **从未使用过SetFilePointer

【问题讨论】:

  • 这个的用例是什么?除了作业之外,我还没有见过这样的规范:“不得使用SetFilePointer
  • Blackbox 遗留 I/O API 不得更改,您必须解决这些限制。
  • @IInspectable:如果您希望应用程序能够记录但不损坏或删除日志文件,“附加”情况实际上可能很有用。仅授予应用程序(其用户)对日志文件的附加访问权限应该可以完成这项工作。
  • @MartinDrab:但这已经由CreateFile 处理了。只需通过FILE_APPEND_DATAfile access right constant,您就可以开始了。无需明确指定偏移量。
  • 我知道。我只是想让“附加”的东西更清楚。我不打算为“抵消问题”带来任何新的东西。

标签: winapi path filepath ntfs createfile


【解决方案1】:

没有允许您在路径名中指定流偏移的语法。有关支持的语法,请参阅 MSDN:

File Streams

您必须在打开流后寻找所需的偏移量。

【讨论】:

  • 如我所料。感谢您的确认。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 2015-08-03
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
相关资源
最近更新 更多