前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF 解决 PathTooLongException 路径太长

WPF 解决 PathTooLongException 路径太长

作者头像
林德熙
发布2019-12-12 15:27:07
1.4K0
发布2019-12-12 15:27:07
举报
文章被收录于专栏:林德熙的博客林德熙的博客

在进行访问文件的时候,可能会因为文件的路径太长无法创建访问文件 本文告诉大家如何支持长路径的读写

先创建简单的程序,在界面放一个按钮,在按钮点击的事件尝试写一个文件名很长的文件

代码语言:javascript
复制
        private void Button_OnClick(object sender, RoutedEventArgs e)
        {
            string str = "E:\\the long long path {0}.txt";
            str = string.Format(str, new string(Enumerable.Range(0, 300).Select(temp => 'x').ToArray()));
            var file = new FileInfo(str);
            using (var stream = file.CreateText())
            {
                stream.WriteLine("欢迎访问我博客 http://lindexi.gitee.io 里面有大量 UWP WPF 博客");
            }
        }

运行程序点击按钮会发现 var file = new FileInfo(str); 说文件名太长

代码语言:javascript
复制
System.IO.PathTooLongException:“指定的路径或文件名太长,或者两者都太长。完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符。”

可以通过限定路径的方法解决

在运行输入 gpedit.msc 打开策略编辑器

点击计算机配置-管理模板-所有设置,找到启用win32长路径选项

点击编辑策略设置,启用

如果要在应用程序可以使用长的文件名,当然单个文件名不能超过 265 字符,但是文件所在路径可以超过。需要在 .NET 4.6.2 以上,添加清单

在清单 app.manifest 添加下面代码

代码语言:javascript
复制
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
      <windowsSettings xmlns:ws2="https://schemas.microsoft.com/SMI/2016/WindowsSettings">
          <ws2:longPathAware>true</ws2:longPathAware>
      </windowsSettings>
  </application>

此时可以尝试写长路径

代码语言:javascript
复制
        static void Main(string[] args)
        {
            var folder = Path.GetTempPath();

            for (int i = 0; i < 300; i++)
            {
                folder = Path.Combine(folder, i.ToString());
                Directory.CreateDirectory(folder);
            }

            var file = new FileInfo(Path.Combine(folder, "1.txt"));
            var fileStream = file.Create();
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档