From cd1d18d3652f2fb70da40b69b974c9dd3dff8d8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=96=E5=A4=A7=E8=88=85=E4=BB=96=E4=BA=8C=E8=88=85?= =?UTF-8?q?=E9=83=BD=E6=98=AF=E4=BB=96=E8=88=85?= Date: Mon, 5 Jul 2021 15:55:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6=E5=A4=B9?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=8B=BC=E5=86=99=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=8D=95=E5=8F=8D=E6=96=9C=E6=9D=A0=EF=BC=88Windows=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E5=8D=95=E6=96=9C=E6=9D=A0=EF=BC=88Linux=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复文件夹路径拼写问题,单反斜杠(Windows),单斜杠(Linux)。 在 Linux 系统下,会错误的创建名称为 \poifiles 文件夹,并且将临时文件直接存储到到 /tmp 目录下面,并非 /tmp/poifiles 目录。 从 Windows 和 Linux 测试通过。 --- main/Util/TempFile.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/main/Util/TempFile.cs b/main/Util/TempFile.cs index e503a3855..325a6ed91 100644 --- a/main/Util/TempFile.cs +++ b/main/Util/TempFile.cs @@ -1,4 +1,4 @@ - + namespace NPOI.Util { using System; @@ -21,13 +21,13 @@ public static FileInfo CreateTempFile(String prefix, String suffix) if (dir == null) { - dir = Directory.CreateDirectory(Path.GetTempPath() + @"\poifiles").FullName; + dir = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), "poifiles")).FullName; } // Generate a unique new filename - string file= dir + "\\" + prefix + Guid.NewGuid().ToString() + suffix; + string file = Path.Combine(dir, prefix + Guid.NewGuid().ToString() + suffix); while (File.Exists(file)) { - file = dir + "\\" + prefix + Guid.NewGuid().ToString() + suffix; + file = Path.Combine(dir, prefix + Guid.NewGuid().ToString() + suffix); Thread.Sleep(1); } FileStream newFile = new FileStream(file, FileMode.CreateNew, FileAccess.ReadWrite); @@ -40,12 +40,12 @@ public static string GetTempFilePath(String prefix, String suffix) { if (dir == null) { - dir = Directory.CreateDirectory(Path.GetTempPath() + @"\poifiles").FullName; + dir = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), "poifiles")).FullName; } Random rnd = new Random(DateTime.Now.Millisecond); Thread.Sleep(10); //return prefix + rnd.Next() + suffix; - return dir + "\\" + prefix + rnd.Next() + suffix; + return Path.Combine(dir, prefix + rnd.Next() + suffix); } } }