winform文件修改器

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication3
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }

        private void Main_Load(object sender, EventArgs e)
        {
            cbb_xuanze.SelectedIndex = 0;
        }

        private void btn_Choice_Click(object sender, EventArgs e)
        {
            folderBrowserDialog1.ShowDialog();//选择路径
            //folderBrowserDialog1.Multiselect = true;
            text_Choice.Text = folderBrowserDialog1.SelectedPath;
            //btn_TiHuan.Enabled = true;
            //btn_guize.Enabled = true;
        }

        private void btn_TiHuan_Click(object sender, EventArgs e)
        {
            Execute(1);
            shuaxin();
        }
        private void btn_guize_Click_1(object sender, EventArgs e)
        {
            Execute(2);
            shuaxin();
        }
        private void Execute(int click)
        {
            string strlujing = text_Choice.Text.Trim();
            string strold = text_old.Text;
            string strnew = text_new.Text;
            string strchong = text_chong.Text;
            //由于原来一直都没注意到这两个方法,一直使用string.IsNullOrEmpty,当看到string.IsNullOrWhiteSpace时,而且在微软人员开发的项目中经常使用时才注意到,查了一下MSDN,记一下免得以后忘记。
            //string.IsNullOrEmpty
            //都知道,这个功能是判断字符串是否为:null或者string.Empty。如果是如"\t"这样的字符就返回false了,为了达到判断过滤这些功能,就要使用Trim()和Length属性帮忙,判断是否长度为零,于是乎就产生了如下的方法。
            //string.IsNullOrWhiteSpace
            //这个是判断所有空白字符,功能相当于string.IsNullOrEmpty和str.Trim().Length总和,他将字符串给Char.IsWhiteSpace为ture的任何字符都将是正确的。根据MSDN的说明,这个方法会比调用上述两个方法的性能更高而且简洁,所以在判断这个功能时,推荐使用。
            if (string.IsNullOrWhiteSpace(strlujing))
            {
                MessageBox.Show("请选择文件夹!");
            }
            else if (!Directory.Exists(strlujing))//确定给定路径是否引用磁盘上的现有目录,返回值为bool,如果 path 引用现有目录,则为 true;否则为 false。
            {
                MessageBox.Show("所指定的文件夹不存在!");
            }
            else
            {
                int num = 0;
                try
                {
                    string[] wenjian = Directory.GetFiles(strlujing);
                    //返回指定目录中与指定的搜索模式匹配的文件的名称(包含它们的路径)。参数类型:System.String要搜索的目录。
                    //返回值
                    //类型:System.String[]
                    //指定目录中与指定的搜索模式匹配的文件的全名(包含它们的路径)的数组。
                    pb_JinDuTiao.Maximum = wenjian.Length;
                    StringBuilder way = new StringBuilder();//拼接字符串 类似于+=   用来定义文件名
                    //StringBuilder 上的主要操作是 append 和 insert 方法。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串生成器中。append 方法始终将这些字符添加到生成器的末端;而 insert 方法则在指定的点添加字符。
                    int i = 0;//成功操作个数。
                    if (wenjian == null || wenjian.Length == 0)
                    {
                        MessageBox.Show("文件夹中不存在文件!");
                        //MessageBoxButtons.OK:消息框包含“确定”按钮。MessageBoxButtons指定若干常数,用以定义 MessageBox 上将显示哪些按钮;
                        //MessageBoxIcon指定定义哪些信息要显示的常数。: MessageBoxIcon.Asterisk该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的。
                    }
                    else
                    {
                        DateTime StartTime = DateTime.Now;
                        foreach (string fileName in wenjian)
                        {
                            pb_JinDuTiao.Value = pb_JinDuTiao.Value + 1;
                            var fileinfo = new FileInfo(fileName);
                            //可以赋予局部变量推断“类型”var 而不是显式类型。 var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。 推断类型可以是内置类型、匿名类型、用户定义类型或 .NET Framework 类库中定义的类型。
                            //提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。无法继承此类。
                            //将 FileInfo 类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件。
                            //许多 FileInfo 方法在您创建或打开文件时返回其他 I/O 类型。可以使用这些其他类型进一步操作文件。有关更多信息,请参见特定的 FileInfo 成员,如 Open、OpenRead、OpenText、CreateText 或 Create。
                            //如果打算多次重用某个对象,可考虑使用 FileInfo 的实例方法,而不是 File 类的相应静态方法,因为并不总是需要安全检查。
                            //默认情况下,将向所有用户授予对新文件的完全读/写访问权限。
                            int index = fileinfo.Name.LastIndexOf(‘.‘);
                            way.Length = 0;
                            way.Append(fileinfo.DirectoryName + @"\");
                            switch (click)
                            {
                                case 1://替换
                                    //文件名存在才进行替换。
                                    if (strold == null || strold.Length == 0)
                                    {
                                        return;
                                    }
                                    if (fileinfo.Name.Substring(0, index > -1 ? index : fileinfo.Name.Length).Contains(strold))
                                    {
                                        way.Append(fileinfo.Name.Substring(0, index > -1 ? index : fileinfo.Name.Length).Replace(strold, strnew));
                                        if (index > -1)
                                        {
                                            way.Append(fileinfo.Name.Substring(index, fileinfo.Name.Length - index));
                                        }
                                        fileinfo.MoveTo(Convert.ToString(way));
                                        i++;
                                    }
                                    break;
                                case 2:
                                    //if (cbb_xuanze.SelectedIndex != 0)
                                    //{
                                    //    MessageBox.Show("此功能尚未完成!");
                                    //    pb_JinDuTiao.Value = 0;
                                    //    num = 0;
                                    //    return;
                                    //}
                                    switch (cbb_xuanze.SelectedIndex)
                                    {
                                        case 0:
                                            if (rdb_qian.Checked == true)
                                            {
                                                way.Append((++num) + strchong);
                                            }
                                            else
                                            {
                                                way.Append(strchong + (++num));
                                            }
                                            if (index > -1)
                                            {
                                                way.Append(fileinfo.Name.Substring(index, fileinfo.Name.Length - index));
                                            }
                                            break;
                                        case 1:
                                            if (rdb_qian.Checked == true)
                                            {
                                            }
                                            else
                                            {
                                            }
                                            break;
                                    }
                                    fileinfo.MoveTo(Convert.ToString(way));//将指定文件移到新位置,并提供指定新文件名的选项。参数:要将文件移动到的路径,可以指定另一个文件名。
                                    i++;
                                    break;
                            }
                        }
                        DateTime EndTime = DateTime.Now;
                        TimeSpan ts = EndTime - StartTime;
                        Text = ("总耗时:" + ts.Minutes + "分" + ts.Seconds + "秒" + ts.Milliseconds + "毫秒");
                        MessageBox.Show("一共操作了:" + i + "个文件");
                        pb_JinDuTiao.Value = 0;
                        num = 0;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("错误信息:" + ex.Message, "错误");
                    pb_JinDuTiao.Value = 0;
                    num = 0;
                }
            }
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            shuaxin();
        }
        public void shuaxin()
        {
            List<string> st = new List<string>();
            foreach (string file in Directory.GetFiles(text_Choice.Text))//获取指定目录下的文件名称,不包括文件夹
            {
                st.Add(file);
            }

            listView1.Columns.Clear();
            listView1.Columns.Add("文件名", 600);
            listView1.Items.Clear();
            for (int i = 0; i < st.Count; i++)
            {
                //listView1.Items.Add(new ListViewItem(new string[] { st[i] }));
                listView1.Items.Add(st[i].ToString());
            }

        }

        private void text_Choice_TextChanged(object sender, EventArgs e)
        {
            if (text_Choice.Text == null || text_Choice.Text.Length == 0 || text_Choice.Text != folderBrowserDialog1.SelectedPath)
            {
                button1.Enabled = false;
            }
            else
            {
                button1.Enabled = true;
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
           label3 .Text = DateTime.Now.ToLongTimeString();
        }
    }
}

  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            folderBrowserDialog1.ShowDialog();
            textBox1.Text = folderBrowserDialog1.SelectedPath;
        }
        public void meiju(ListView al)
        {
            if (!string.IsNullOrWhiteSpace(textBox1.Text))//判断文本框中是否有内容
            {
                List<string> st = new List<string>();
                foreach (string file in Directory.GetFiles(textBox1.Text))//获取指定目录下的文件名称,不包括文件夹 Directory.GetFiles(textBox1.Text) 为一个数组文件
                {
                    st.Add(file);
                    //MessageBox.Show(file);
                }
                al.Columns.Clear();
                al.Columns.Add("文件名", 600);
                al.Items.Clear();
                for (int i = 0; i < st.Count; i++)
                {
                    al.Items.Add(st[i].ToString());//遍历文件夹内文件
                }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            meiju(listView1);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            dandata();
            meiju(listView1);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            duodate();
            meiju(listView1);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            quandate();
            meiju(listView1);
        }
        public void RenameDirectories(string OldPathName, string newPathName)
        {
            int i = 1;
            string[] sDirectories = Directory.GetDirectories(OldPathName);
            foreach (string sd in sDirectories)
            {
                string sdName = Path.GetFileName(sd);//获取文件的名称,没有路径,直接是文件名称
                string sNewName = string.Format(newPathName, i++);//替换,string.Format(a{0},b{1},p1,p2) 输出结果为 a p1,b p2
                string sNewDirectory = Path.Combine(OldPathName, sNewName);//将两个字符串合并
                Directory.Move(sd, sNewDirectory);//重命名文件或移动文件到新的位置
            }
        }
        public void dandata()
        {
            if (listView1.SelectedItems != null)
            {
                string path = listView1.SelectedItems[0].Text;//选中的项
                string fname = Path.GetDirectoryName(path);//获取选中文件所在的目录路径
                string bname = Path.GetFileName(path);//获取选中文件的文件名称(包含后缀如.txt)
                string kname = Path.GetExtension(path);//获取选中文件的后缀名称
                string OldStr = fname + @"\" + bname;
                string NewStr = fname + @"\" + textBox2.Text + kname;
                FileInfo fi = new FileInfo(OldStr);
                fi.MoveTo(NewStr);//将制定文件移动到新位置,并提供新的文件名
            }
        }
        public void duodate()
        {
            List<string> lt = new List<string>();
            if (listView1.SelectedItems != null)
            {
                for (int i = 0; i < listView1.SelectedItems.Count; i++)
                {
                    string sp = listView1.SelectedItems[i].Text;
                    lt.Add(sp);
                }
                for (int i = 0; i < lt.Count; i++)
                {
                    string path = lt[i];
                    string OldStr = Path.GetDirectoryName(path) + @"\" + Path.GetFileName(path);
                    string NewStr = Path.GetDirectoryName(path) + @"\" + textBox2.Text + i.ToString() + Path.GetExtension(path);
                    FileInfo fi = new FileInfo(OldStr);
                    fi.MoveTo(NewStr);//将制定文件移动到新位置,并提供新的文件名
                }
            }
        }
        public void quandate()
        {
            int i = 1;
            if (Directory.GetFiles(textBox1.Text) != null)
            {
                foreach (string file in Directory.GetFiles(textBox1.Text))//获取指定目录下的文件名称,不包括文件夹
                {
                    string OldStr = Path.GetDirectoryName(file) + @"\" + Path.GetFileName(file);
                    string NewStr = Path.GetDirectoryName(file) + @"\" + textBox2.Text + i.ToString() + Path.GetExtension(file);
                    //MessageBox.Show(Path.GetExtension(file));
                    //MessageBox.Show(NewStr);
                    FileInfo fi = new FileInfo(OldStr);
                    fi.MoveTo(NewStr);//将制定文件移动到新位置,并提供新的文件名
                    i++;
                }
            }
        }
    }
}

  

时间: 2024-10-14 12:46:45

winform文件修改器的相关文章

winform文件筛选器

在.net 框架中,微软给我们封装了一个用于打开文件的对话框--OpenFileDialog.而该对话框包含一个可以筛选文件的属性--Filter,利用该属性,可选筛选出我们需要的文件. ??因此,我们有必要把 Filter 属性的格式记住.格式总共分为两种情况: 1 // 一个筛选项中包含多种格式 2 ofd.Filter = "图像文件(*.gif;*.png;*.jpg;*.bmp;*.ico)|*.gif;*.png;*.jpg;*.bmp;*.ico"; 3 // 多个筛选项

Mp3tag(MP3文件信息修改器) V2.79a 多语绿色版

软件名称: Mp3tag(MP3文件信息修改器) 软件语言: 多国语言 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 3.0MB 图片预览: 软件简介: Mp3Tag 是一款mp3文件id3-tag信息修改器.所谓id3-tag 信息,就是在mp3文件中加入曲名.演唱者.专集.年月.流派.注释等信息,便于您收集歌曲. mp3tag是一款体积小巧功能强大简单易用的音频文件标签(元数据)编辑软件.它支持ID3v1, ID3v2.3, ID3v2.4, iTunes MP4,

文件属修改器!(创建时间、修改时间等属性修改)

还记得上学时候计算机老师让交作业,那个时候大部分人都是直接Copy别人做好的东西过来改下内容,但是没有人注意到一个问题就是老师肯定不傻,会看文件的创建时间.修改时间等属性,那时候我就找到一个修改文件属性的软件,屡试不爽,哈哈.我相信很多同学有过这样经历吧,今天再把软件整理下打包给大家,有需要的同学可以下来用.所以说Copy也要会Copy,就像写作文一样,看的多了,用的多了,只要会改,那些东西最后都是属于你自己的.不存在抄袭一说,算是借鉴和升华. 点击下载软件 文件属修改器!(创建时间.修改时间等

Cocos2d-x Android.mk文件自动修改器

做cocos2d-x的项目,一般是用电脑进行开发,然后移植到手机平台上.移植到安卓手机需要用eclipse等工具重新编译打包成apk文件.而用eclipse打包的话,要把项目的cpp文件一条条加入到Android.mk配置中,文件少无所谓,但如果文件很多,手工添加就比较麻烦了,特别是有些时候,要和原先的Andriod.mk配置做比较,本次新增了哪些文件,然后把新增的文件添加进去. 总之,打包成apk,手工修改Android.mk配置很麻烦.所以,我做了一个自动修改器.如下图: 我的Cocos2d

怎么移动dwg文件查看器中的图形位置

一张图纸中包括图形和文字,图形可以让读者更加容易理解,而文字则是起到了一个解释性的作用.在电脑中打开CAD图纸,需要用到dwg文件查看器,制作过CAD的朋友们都知道CAD文件的格式是dwg格式.图纸中的图形有的时候不在适合位置,就需要把他移动到一个合适的位置上,那么,如何移动呢,来看看具体的操作方法. 如果想要将CAD图形对象移动到指定位置,那么只需要使用迅捷CAD编辑器就可以对CAD图形对象进行移动操作,这是一款专业的CAD编辑软件,软件不仅可以用来浏览和查看DWG.DXF等CAD文件格式,还

用 C++ 写一个简易的《生化危机 4》修改器

思路比较简单,实现方法也不难,我这里大概说一下流程:♦ 用 CheatEngine 或者类似的内存搜索工具定位要修改的数值的内存地址:♦ 确定要修改的数值所占的字节数:♦ 提升修改器进程自身的 Privilege(特权):♦ 查找并打开目标进程,获取目标进程句柄:♦ 读取目标进程内存地址上的值:♦ 把值写入目标进程的内存地址上: 第一第二步不属于本文的讨论范围,我们从第三步开始吧: 微软从 Windows Vista  开始,引入了新的安全机制,一个进程如果没有足够的权限,是无法读写或者查询另外

pdf修改器怎么修改图片文字

作为一名完美主义者,就要对任何一个细节都不能放过.就好比说一个PDF电子文档,我们大多数人都觉得可以了,但追求完美的人总会觉得这里或者那里有瑕疵.就好比说PDF中的图片觉得使用不当,想要对其进行修改.我们也都知道PDF文档中的内容是不能直接进行编辑的,那我们应该如何解决这个问题呢? 其实也很简单,我们只需要下载一个PDF修改器就可以了,那就是捷速PDF编辑器.这款PDF修改器有完整的PDF编辑功能,不单只能够对PDF文件当中的文本部分进行修改,更可以针对图像.样式.多媒体内容进行编辑.用户可以在

Python-文件修改器

#-*- coding: utf-8 -*- import sys from PyQt4.QtGui import * from PyQt4.QtCore import * class Change(QWidget): def __init__(self, parent = None): super(Change, self).__init__(parent) self.setWindowTitle(u"文件更改器") self.setWindowFlags(Qt.WindowMini

关于烧饼游戏修改器的分析

一.前言 烧饼游戏修改器是一款元老级的游戏修改器,提供了精确搜索.模糊搜索.联合搜索.数据过滤.存储搜索与读取搜索等功能.主要实现搜索手机进程的内存数据并做相应修改. 本文中分析的版本为2.0.2(34),SDK:8,TargetSDK:17,代码经过混淆,修改器基本使用方法为输入需要修改的数据进行查询,查询结果少则可直接修改,查询结果多则需要返回游戏,使想修改的数据发生变化后再次搜索,最后根据数据变化偏移找到需要修改的地址.输入想要修改成的数据即可修改. 本程序测试机为LG Nexus 5,版