gpt4 book ai didi

C#:OLE 文件的最大文件名长度

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:57 27 4
gpt4 key购买 nike

我使用 WinAPI 函数在 C# 中创建 OLE 文件。 WinAPI 函数是:

   [DllImport("ole32.dll")]
public static extern int OleCreateFromFile(
[In] ref Guid rclsid,
[MarshalAs(UnmanagedType.LPWStr)] string lpszFileName,
[In] ref Guid riid, uint renderopt,
[In] IntPtr pFormatEtc,
IOleClientSite pClientSite,
IStorage pStg,
[MarshalAs(UnmanagedType.IUnknown)] out object ppvObj);

我在 C# 应用程序中使用了这个函数,如下所示:

     hResult = OleAPI.OleCreateFromFile(ref clsid,
sourceFileFullPath,
ref IID_IOleObject,
(uint)OLERENDER.OLERENDER_DRAW,
IntPtr.Zero,
pOleClientSite,
pStorage,
out pOleObjectOut);

该功能完美运行。但是当文件的文件名长度为140时,创建OLE文件失败。 hResult的返回值为-2147467259。

值(value) sourceFileFullPath="C:\Users\Administrator\AppData\Local\Temp\TmpTzStore1\pju3wswj.jmq\000008F6\CalendarRepeddsfsfdsfsfat344Issue5sdfdfsfsfdsfdsfsdsdfdsfsf00kbCalendarRepeatIssue500kbCalendarRepeatIssue500kbCalendarRepeatIssue500kb.xlsx"

文件名的长度(CalendarRepeddsfsfdsfsfat344Issue5sdfdfsfsfdsfdsfsdsdfdsfsf00kbCalendarRepeatIssue500kbCalendarRepeatIssue500kbCalendarRepeatIssue500kb.xlsx)是140。

但是当我将文件名修剪为 120 时,它起作用了。

我想知道 OLE 文件的文件名长度是否有任何限制。因为我尝试了不同的应用程序文件(doc、docx、txt、pdf ...)。不同文件的结果各不相同。

我不知道这个 API 支持的确切文件名长度是多少。或者它取决于操作系统?我正在使用 Windows Server 2008。

谢谢普拉卡什

最佳答案

完整 文件名长度的最大文件名长度(包括路径)为 ( about ) 259 个字符。您粘贴的路径长度为 216 个字符,因此应该在限制之内。

MSDN pages不描述具体的最大长度意味着 259 个字符应该是最大值。

我找不到关于此差异的任何文档。也许您的一条或多条路径是指向实际上更长的路径名的软链接(soft link)。

关于C#:OLE 文件的最大文件名长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4014282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com