• 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

  • 相关阅读:
    背包解法
    第十六周周总结
    软件工程个人课程总结
    学期课后个人总结
    spring事务
    梦断代码03
    团队冲刺的第二十四天
    第十五周周总结
    百度输入法评价
    找到水王
  • 原文地址:https://www.cnblogs.com/sherlock99/p/3635908.html
Copyright © 2020-2023  润新知