⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 这是.net2005学习不可缺少的教程
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 从应用程序所在的当前目录开始
            openFileDialog1.InitialDirectory = System.IO.Directory.GetCurrentDirectory();
            openFileDialog1.Filter = "Text files (*.*)|*.*";
            openFileDialog1.Multiselect = true;
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;

            if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    foreach(string strFileName in this.openFileDialog1.FileNames)
                    {
                        this.listBox1.Items.Add(strFileName);
                    }
                }
                catch (Exception E)
                {
                    MessageBox.Show(E.Message, "错误", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                }
            }
        }

        #region Delete_directly
        private void btn_Remove_Click(object sender, EventArgs e)
        {
            foreach (string strFileName in openFileDialog1.FileNames)
            {
                System.IO.File.Delete(strFileName);
            }
            MessageBox.Show("文件被删除!");
        }
        #endregion

        private void btn_toRecycleBin_Click(object sender, EventArgs e)
        {
            try
            {
                int iCount = 0;
                foreach (string fStr in openFileDialog1.FileNames)
                {
                    if (DeleteRB(fStr, true) == 0)
                    {
                        iCount++;
                    }
                }
                MessageBox.Show(iCount + "个文件被删除!");
            }
            catch
            { }
        }

        #region delete files through recycle bin

        private const int FO_DELETE = 3;
        private const int FOF_SILENT = 0x0004;
        private const int FOF_NOCONFIRMATION = 0x0010;
        private const int FOF_ALLOWUNDO = 0x0040;
        private const int FOF_NOCONFIRMMKDIR = 0x0200;


        [StructLayout(LayoutKind.Sequential)]
        private struct SHFILEOPSTRUCT
        {
            public int hwnd;
            public int wFunc;
            public string pFrom;
            public string pTo;
            public int fFlags;
            public bool fAnyOperationsAborted;
            public int hNameMappings;
            public string lpszProgressTitle;
        }



        [DllImport("shell32.dll")]
        private static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp);


        /// <example> 
        /// Delete("c:\\test.txt",true);
        /// <example>

        private static int DeleteRB(string sPath, bool recycle)
        {
            SHFILEOPSTRUCT FileOp = new SHFILEOPSTRUCT();
            FileOp.hwnd = 0;
            FileOp.wFunc = FO_DELETE;
            FileOp.fFlags = 0;
            FileOp.fFlags = FileOp.fFlags | FOF_SILENT;
            FileOp.fFlags = FileOp.fFlags | FOF_NOCONFIRMATION;
            FileOp.fFlags = FileOp.fFlags | FOF_NOCONFIRMMKDIR;
            if (recycle)
            {
                FileOp.fFlags = FileOp.fFlags | FOF_ALLOWUNDO;
            }
            FileOp.pFrom = sPath + "\0";
            return SHFileOperation(ref FileOp);
        }
        #endregion

        private void btn_ClearRecycleBin_Click(object sender, EventArgs e)
        {
            string[] localDrivers = Directory.GetLogicalDrives();
            int i = localDrivers.Length;
            foreach (string driver in localDrivers)
            {
                try
                {
                    string[] sFiles = Directory.GetFiles(driver + "\\recycled");
                    if (sFiles.Length != 0)
                    {
                        foreach (string sFile in sFiles)
                        {
                            File.Delete(sFile);
                        }
                    }
                    string[] sDirs = Directory.GetDirectories(driver + "\\recycled");
                    if (sDirs.Length != 0)
                    {
                        foreach (string sDir in sDirs)
                        {
                            Directory.Delete(sDir, true);
                        }
                    }
                }
                catch(Exception err)
                {
                }
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -