Explorar el Código

ref: VisualBasic.FileIO

龙腾猫跃 hace 5 meses
padre
commit
bc8828e29c
Se han modificado 3 ficheros con 27 adiciones y 2 borrados
  1. 1 0
      Shared/MeloongCore.csproj
  2. 15 0
      Shared/Utils/DirectoryUtils.cs
  3. 11 2
      Shared/Utils/FileUtils.cs

+ 1 - 0
Shared/MeloongCore.csproj

@@ -25,6 +25,7 @@
 
 	<ItemGroup>
 	  <Reference Include="System.ServiceModel" />
+	  <Reference Include="Microsoft.VisualBasic" />
 	</ItemGroup>
 
 	<ItemGroup>

+ 15 - 0
Shared/Utils/DirectoryUtils.cs

@@ -55,4 +55,19 @@ public static class DirectoryUtils {
         Create(destDirName);
         Directory.Move(PathUtils.ToLongPath(sourceDirName), PathUtils.ToLongPath(destDirName));
     }
+
+    /// <summary>
+    /// 删除文件夹。
+    /// </summary>
+    public static void Delete(string dirPath, bool toRecycleBin = false) {
+        dirPath = PathUtils.ToLongPath(dirPath);
+        if (toRecycleBin) {
+            Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory(dirPath,
+                Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, 
+                Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin, 
+                Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException);
+        } else {
+            Directory.Delete(dirPath);
+        }
+    }
 }

+ 11 - 2
Shared/Utils/FileUtils.cs

@@ -65,8 +65,17 @@ public static class FileUtils {
     /// <summary>
     /// 删除文件。
     /// </summary>
-    public static void Delete(string filePath) => 
-        File.Delete(PathUtils.ToLongPath(filePath));
+    public static void Delete(string filePath, bool toRecycleBin = false) {
+        filePath = PathUtils.ToLongPath(filePath);
+        if (toRecycleBin) {
+            Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile(filePath,
+                Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
+                Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin,
+                Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException);
+        } else {
+            File.Delete(filePath);
+        }
+    }
 
     /// <summary>
     /// 确定指定的文件是否存在。