我正在使用来自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有效地做到这一点。所谓高效,是指没有经过许多不同的技术层面。

最佳答案

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

09-25 20:37