.NET - Handle longer file name

从微软官方网站 Path Field Limits,可以查到,使用 Unicode 版本的 API,对于使用 NTFS 文件系统的 Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional 和 Windows Server 2003 操作系统,可以支持 32768 字节的文件路径长度。同时,路径名必须使用 \\?\ 的前缀。

private void ArchiveZipFile(string zipFileName)
{
    if (!System.IO.File.Exists(zipFileName) throw new FileNotFoundException();
    var destPath = Path.Combine(
        @"\\?\",
        System.Web.Hosting.HostingEnvironment.MapPath(_rootArchivePath),
        DateTime.Now.ToString("yyyy-MM-dd"),
        System.IO.Path.GetFileNameWithoutExtension(zipFileName)
    ); 
    if (!Directory.Exists(destPath))
        Directory.CreateDirectory(destPath);
    else
        Directory.Delete(destPath, true);
    ZipFile.ExtractToDirectory(zipFileName, destPath);
}