文件夹上的备用数据流

时间:2012-08-17 21:31:48

标签: python winapi ntfs win32com alternate-data-stream

我正在使用python win32com中的StgCreateStorageEx来调整testStorage.py中的代码,将我自己的file_id属性写入任何文件。

根据alternate-streams(虽然不一定来自此API调用),应该可以保存到目录/文件夹,但更改标志会产生不同的错误,例如:

from win32com import storagecon
import pythoncom, os, win32api

fname = r"c:\temp\test\test.txt" #works
fname = r"c:\temp\test\test2"

def testit():
    m=storagecon.STGM_READWRITE | storagecon.STGM_SHARE_EXCLUSIVE
    pss=pythoncom.StgOpenStorageEx(fname, m, storagecon.STGFMT_FILE, 0, pythoncom.IID_IPropertySetStorage)

结果:

  

pywintypes.com_error:( - 2147024895,'功能不正确。',无,无)

修改 有关如何从WinXP,Win7和Windows Server 2003 / R2中使用它的任何建议吗?

请注意,最终结果不一定需要使用此API,我只需要能够从Python有效地完成它。有效地,我的意思是不是通过许多不同的技术层。

2 个答案:

答案 0 :(得分:0)

如果将storagecon.STGM_DIRECT添加到模式,则成功。

答案 1 :(得分:0)

查看结果,StgOpenStorageEx为文件添加了更多内容,而不仅仅是写入open(fname +“:stream_name”),所以我选择了这个。除了无法写入标准汇总字段之外,与StgOpenStorageEx相比,这有什么不利之处吗?