繁体   English   中英

使用Response.TransmitFile抛出PathTooLongException

[英]Using Response.TransmitFile throw PathTooLongException

我需要将文件传输到客户端而不需要缓冲到内存中,所以我使用了Response.TransmitFile,但是此函数抛出PathTooLongException,我可以在IO.File函数中处理此异常,但是我没有找到用于此TransmitFile的任何解决方案,堆栈跟踪就像是自爆

Message :The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

StackTrace :   at System.IO.PathHelper.GetFullPathName()
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at System.Web.HttpResponse.TransmitFile(String filename, Int64 offset, Int64 length)
   at _Default.Page_Load(Object sender, EventArgs e) in Download.aspx.cs:line 151
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

您确实需要阅读错误:

消息:指定的路径,文件名或两者都太长。 完全限定的文件名必须少于260个字符,目录名称必须少于248个字符。

问题出在哪里很清楚。 我猜您的路径或文件名太长。

检查您要发送的文件名:

at System.Web.HttpResponse.TransmitFile(String filename, Int64 offset, Int64 length)
at _Default.Page_Load(Object sender, EventArgs e) in c:\Inetpub\dl1.isdm.ir\Download.aspx.cs:line 151

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM