zoukankan      html  css  js  c++  java
  • C#路径超过260字符解决方案

    路径超过260字符,不能采用普通的Copy等函数了。

    使用如下的代码:

    /// <summary>
    /// 长文件名的文件拷贝
    /// </summary>
    /// <param name="source"></param>
    /// <param name="target"></param>
    /// <param name="overwrite"></param>
    [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
    [return: MarshalAs(UnmanagedType.Bool)]
    internal static extern bool CopyFile(string source, string target, bool overwrite);
    public static void Copy(string source, string target, bool overwrite)
    {
      string formattedName_source = @"\?" + source;
      string formattedName_target = @"\?" + target;
      // CopyFile 第三个参数是 FALSE 的时候自动覆盖 所以写成 !overwrite
      // 参见 http://msdn.microsoft.com/en-us/library/aa363851(v=vs.85).aspx
      bool v = CopyFile(formattedName_source, formattedName_target, !overwrite);
    }

    注意:只支持本地路径,不支持带IP地址的网络路径

    参考资料

    http://blogs.msdn.com/b/bclteam/archive/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton.aspx

    http://msdn.microsoft.com/en-us/library/aa363851(v=vs.85).aspx

  • 相关阅读:
    day6心得
    安卓下拉刷新和上拉加载的具体实例
    安卓下拉刷新空间SwipeRefreshLayout的基本使用
    fresco的使用教程
    封装安卓的okhttp
    handler更新ui线程的基本用法
    安卓recyclerview的基本使用
    安卓轮播组件
    自定义toolbar教程
    原生toolbar基本使用教程
  • 原文地址:https://www.cnblogs.com/sherlock99/p/3635908.html
Copyright © 2011-2022 走看看