欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現(xiàn)刪除文件和目錄到回收站

 更新時間:2025年01月21日 10:51:31   作者:秋月的私語  
這篇文章主要為大家詳細(xì)介紹了如何使用C#實現(xiàn)刪除文件和目錄到回收站,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

之前在c++上遇到過這個問題,折騰許久才解決了,這次在c#上再次遇到這個問題,不過似乎容易了一些,親測代碼如下,兩種刪除方式都寫在代碼中了。

直接上完整代碼:

using Microsoft.VisualBasic.FileIO;
using System;
using System.IO;
using System.Runtime.InteropServices;
 
namespace ceshiConsole
{
    public class FileIOHelper
    {
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 1)]
        public struct SHFILEOPSTRUCT
        {
            public IntPtr hwnd;
            [MarshalAs(UnmanagedType.U4)]
            public int wFunc;
            public string pFrom;
            public string pTo;
            public short fFlags;
            [MarshalAs(UnmanagedType.Bool)]
            public bool fAnyOperationsAborted;
            public IntPtr hNameMappings;
            public string lpszProgressTitle;
        }
 
        #region Dllimport
        [DllImport("shell32.dll", CharSet = CharSet.Auto)]
        public static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp);
        #endregion
        #region Const
        public const int FO_DELETE = 3;
        public const int FOF_ALLOWUNDO = 0x40;
        public const int FOF_NOCONFIRMATION = 0x10;
        #endregion
 
        #region Public Static Method
        public static void DeleteFileToRecyclebin(string file, Boolean showConfirmDialog = false)
        {
            SHFILEOPSTRUCT shf = new SHFILEOPSTRUCT();
            shf.wFunc = FO_DELETE;
            shf.fFlags = FOF_ALLOWUNDO;
            if (!showConfirmDialog)
            {
                shf.fFlags |= FOF_NOCONFIRMATION;
            }
            shf.pFrom = file + '\0' + '\0';
            SHFileOperation(ref shf);
        }
 
        public static bool SendToRecycleBin(string path)
        {
            bool bRet = true;
            try
            {
                if (File.Exists(path))
                {
                    FileSystem.DeleteFile(path, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
                }
                else if (Directory.Exists(path))
                {
                    FileSystem.DeleteDirectory(path, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
                }
                else
                {
                    bRet = false;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"無法將文件/目錄 {path} 移動到回收站: {ex.Message}");
                bRet = false;
            }
 
            return bRet;
        }
 
        static void Main(string[] args)
        {
            DeleteFileToRecyclebin(@"C:\Users\autumoon\Desktop\test.txt");
            SendToRecycleBin(@"C:\Users\autumoon\Desktop\test2.txt");
        }
 
        #endregion
    }
}

到此這篇關(guān)于C#實現(xiàn)刪除文件和目錄到回收站的文章就介紹到這了,更多相關(guān)C#刪除文件和目錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實現(xiàn)學(xué)員信息管理系統(tǒng)

    C#實現(xiàn)學(xué)員信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)學(xué)員信息管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C#針對xml文件轉(zhuǎn)化Dictionary的方法

    C#針對xml文件轉(zhuǎn)化Dictionary的方法

    這篇文章主要介紹了C#針對xml文件轉(zhuǎn)化Dictionary的方法,是C#操作XML文件的典型應(yīng)用,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • Unity 從Resources中動態(tài)加載Sprite圖片的操作

    Unity 從Resources中動態(tài)加載Sprite圖片的操作

    這篇文章主要介紹了Unity 從Resources中動態(tài)加載Sprite圖片的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • c#數(shù)學(xué)表示法(后綴表示法)詳解

    c#數(shù)學(xué)表示法(后綴表示法)詳解

    什么是后綴表達(dá)式,查了下原來是一種比較特殊的數(shù)學(xué)表達(dá)式,有三種表達(dá)式:前綴表達(dá)式、中綴表達(dá)式和后綴表達(dá)式,下面我們使用示例學(xué)習(xí)一下
    2014-01-01
  • C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實現(xiàn)方法

    C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • C#基礎(chǔ)教程之類class與結(jié)構(gòu)struct的區(qū)別

    C#基礎(chǔ)教程之類class與結(jié)構(gòu)struct的區(qū)別

    struct是值類型,創(chuàng)建一個struct類型的實例被分配在棧上,class是引用類型,創(chuàng)建一個class類型實例被分配在托管堆上,下面這篇文章主要給大家介紹了關(guān)于C#基礎(chǔ)教程之類class與結(jié)構(gòu)struct區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Unity3D Shader實現(xiàn)鏡子效果

    Unity3D Shader實現(xiàn)鏡子效果

    這篇文章主要為大家詳細(xì)介紹了Unity3D Shader實現(xiàn)鏡子效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C#匿名方法與Delegate類型轉(zhuǎn)換錯誤分析

    C#匿名方法與Delegate類型轉(zhuǎn)換錯誤分析

    這篇文章主要介紹了C#匿名方法與Delegate類型轉(zhuǎn)換錯誤,較為詳細(xì)的分析了C#匿名方法的用法及Delegate類型轉(zhuǎn)換錯誤問題解決方法,具有一定的實用價值,需要的朋友可以參考下
    2014-11-11
  • C#打印出正等腰三角形實例代碼

    C#打印出正等腰三角形實例代碼

    C#打印出正等腰三角形實例代碼,需要的朋友可以參考一下
    2013-03-03
  • C#語言MVC框架Aspose.Cells控件導(dǎo)出Excel表數(shù)據(jù)

    C#語言MVC框架Aspose.Cells控件導(dǎo)出Excel表數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了C#語言MVC框架Aspose.Cells控件導(dǎo)出Excel表數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論