C#窗体 WinForm 文件操作

文件及文件夹操作

C/S:WinForm可以操作客户端文件 Client Server
B/S:浏览器服务 Brower Server

命名空间:using system .IO;

1. File类:文件

创建:File.Create(路径);创建文件,返回FileStream

FileStream fs = File.Create(路径);之后需要关闭否则打不开,fs.close();

删除:File.Delete(路径);无返回值

复制文件:File.Copy(源文件,目标文件);

剪切文件:File.Move(源文件路径,目标路径);

判断文件是否存在:File.Exists(路径);返回布尔型,true代表已存在

文件加密:File.Encrypt(); 文件名会变成绿色 当前用户还是可以打开 复制给别的用户打不开

文件解密:File.Decrypt();

File.GetCreationTime(路径);  获取创建时间,返回DateTime类型 SetCreationTime(路径,DateTime类型);修改创建时间

File.GetLastAccessTime(路径);  最后访问时间,返回DateTime类型 SetLastAccessTime(路径,DateTime类型);修改访问时间

File.GetLastWriteTime(路径);  最后修改时间,返回DateTime类型 SetLastWriteTime(路径,DateTime类型);修改修改时间



2. Directory 类,目录(文件夹)

Directory .CreateDirectory(路径);  创建目录

Directory .Delete(路径);  删除目录

Directory .Exists(路径);  目录是否存在

三个时间的get和set 同File类

Directory .GetDirectories(路径);   获取子目录,返回string数组

Directory .GetFiles(路径);       获取子文件!名!,返回string数组,string[] s = Directory .GetFiles(路径);

Directory .GetDirectoryRoot(路径);  获取根目录

Directory .GetParent(路径);      获取上一级目录



△3.FileInfo 类

是实例方法,需要造对象new出来才能用,上面的都是File的静态方法

创建文件:FileInfo f = new FileInfo(路径); FileStream s = f.Create(); s.Close();

删除文件:FileInfo f = new FileInfo(路径); f.Delete();

复制文件:FileInfo f = new FileInfo(路径); f.CopyTo(目标路径,是否覆盖(true是覆盖));

移动文件:FileInfo f = new FileInfo(路径); f.MoveTo(目标路径);

文件是否存在:FileInfo f = new FileInfo(路径); bool b = f.Exists;布尔型,是个属性

获取文件名:FileInfo f = new FileInfo(路径);string s = f.FullName;属性,带路径的文件名

获得创建时间:DateTime d = f.CreationTime;三个时间都一样,都是属性

设置创建时间:f.CreationTime = DateTime.Now.AddDays(100); 三个都一样

获取文件大小:f.Length



△4.DirectoryInfo 类

创建目录:DirectoryInfo d = new DirectoryInfo(路径); d.Create();

删除目录:                     d.Delete();

移动目录:                     d.MoveTo(目标路径);

目录是否存在:                   bool b = d.Exists;

获得目录全名:                                                       d.FullName;

获得子文件!对象信息!: FileInfo[] f = d.GetFiles(); 返回的是文件对象数组,内容更详细,d.GetFiles("*.exe")只获取exe的文件

获得子目录:DirectoryInfo[] dr = d.GetDirectories();



例题:(用递归)

1.获取文件夹下所有文件并输出

        //获取文件夹下所有的文件并输出
        private void GetAllFiles(string path)
        {
            //造文件夹信息对象
            DirectoryInfo df = new DirectoryInfo(path);

            //获取该文件夹下所有文件
            FileInfo[] fsz = df.GetFiles();

            //输出文件信息
            foreach (FileInfo data in fsz)
            {
                richTextBox1.Text += data.FullName + "|***|";
            }

            //获取该文件夹下所有的子文件夹
            DirectoryInfo[] dsz = df.GetDirectories();

            //遍历
            foreach (DirectoryInfo datad in dsz)
            {
                GetAllFiles(datad.FullName);
            }
        }

2.给一个文件夹,获取该文件夹下所有文件的数量

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = FileCount(@"E:\test").ToString();
        }

        private int fcount = 0;
        private int FileCount(string path)
        {
            //造文件夹信息对象
            DirectoryInfo dwjj = new DirectoryInfo(path);

            //取当前文件夹下文件数量
            fcount += dwjj.GetFiles().Length;

            //取当前目录下所有文件夹
            foreach (DirectoryInfo d in dwjj.GetDirectories())
            {
                FileCount(d.FullName);
            }
            return fcount;
        }

3.给一个文件夹,获取该文件下所有的文件夹数量

        private int dcount = 0;
        private int DirCount(string path)
        {
            //造一个文件夹信息对象
            DirectoryInfo d = new DirectoryInfo(path);

            //取该目录下所有文件夹
            DirectoryInfo[] df = d.GetDirectories();

            //累加文件夹数量
            dcount += df.Length;

            //遍历所有文件夹
            foreach (DirectoryInfo w in df)
            {
                DirCount(w.FullName);
            }

            return dcount;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            label2.Text = DirCount(@"E:\test").ToString();
        }

4.给一个文件夹,获取该文件夹大小

        private void button3_Click(object sender, EventArgs e)
        {
            label3.Text = DirSize(@"E:\test").ToString();
        }

        private long size = 0;
        private long DirSize(string path)
        {
            //造一目录信息对象
            DirectoryInfo d = new DirectoryInfo(path);

            //取当前目录下所有文件
            foreach (FileInfo data in d.GetFiles())
            {
                size += data.Length;
            }

            //取当前目录下所有文件夹
            foreach (DirectoryInfo data in d.GetDirectories())
            {
                DirSize(data.FullName);
            }

            return size;
        }

5.给一个文件夹,删除该文件夹

        private void button4_Click(object sender, EventArgs e)
        {
            DeleteDir(@"E:\test");
        }

        private void DeleteDir(string path)
        {
            //造目录信息对象
            DirectoryInfo d = new DirectoryInfo(path);
            //取该目录下所有文件,删除
            foreach (FileInfo data in d.GetFiles())
            {
                data.Delete();
            }
            //删除子文件夹
            foreach (DirectoryInfo data in d.GetDirectories())
            {
                DeleteDir(data.FullName);
            }
            //删除空的文件夹
            d.Delete();
        }

时间: 2024-11-05 16:32:08

C#窗体 WinForm 文件操作的相关文章

C#Winform文件操作总结

1.当前程序所在的文件夹 System.IO.Directory.GetCurrentDirectory() 2.显示指定文件夹下的文件 if(this.textBox1.Text.Trim()=="") return; this.listBox1.Items.Clear(); string[] MyFiles=System.IO.Directory.GetFiles(this.textBox1.Text); this.listBox1.Items.AddRange(MyFiles);

WinForm 文件操作

文件及文件夹操作 C/S:WinForm可以操作客户端文件 Client ServerB/S:浏览器服务 Brower Server 命名空间:using system .IO; private void button1_Click(object sender, EventArgs e) { FileStream fs= File.Create("E:\\aa.txt");//创建文件 返回文件流对象 fs.Close(); } private void button2_Click(o

【大话QT之五】Windows与Linux下文件操作监控的实现

一.需求分析: 随着渲染业务的不断进行,数据传输渐渐成为影响业务时间最大的因素.究其原因就是因为数据传输耗费较长的时间.于是,依托于渲染业务的网盘开发逐渐成为迫切需要解决的需求.该网盘的实现和当前市场上网盘实现有一些的不同,主要在客户端与服务器端的操作需要双向进行,即:用户在客户端的操作需要及时同步到服务器端:在服务器端作业渲染生成的文件要及时同步到客户端.即:用户不在需要单独的下载数据,而是在作业运行的同时,渲染就过就会自动同步到客户端,大大缩短了等待时间.当然,无论是在客户端还是在服务端都面

Java文件操作源码大全

1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 910.读取文件属性 911.写入属性 1012.枚举一个文件夹中的所有文件 1013.复制文件夹 1114.复制一个目录下所有的文件夹到另一个文件夹下 1215.移动文件夹 1316.移动一个目录下所有的文件夹到另一个目录下 1517.以一个文件夹的框架在另一个目录创建文件夹和空文件 1618.复制文件 1719.复制一个目

C#窗体 WinForm 对话框,流

一.对话框 ColorDialog:颜色选择控件 private void button1_Click(object sender, EventArgs e) { //显示颜色选择器 colorDialog1.ShowDialog(); //把取到的颜色赋值给panel panel1.BackColor = colorDialog1.Color; } FontDialog:字体样式选择控件 private void button3_Click(object sender, EventArgs e

Java最全文件操作实例汇总

本文实例汇总了Java文件操作.分享给大家供大家参考,具体如下: 1.创建文件夹 ? 1 2 3 4 5 6 7 8 9 10 11 //import java.io.*; File myFolderPath = new File(%%1); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception e) { System.out.println("新建目录操作出错"); e.print

2013级C++第15周(春)项目——输入输出流及文件文件操作

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 本周程序阅读及程序调试中须要的文件,请到http://pan.baidu.com/s/1qW59HTi下载. 第一部分 阅读程序(执行程序时,由上面的链接下载源码)1.阅读教材例13.1到例13.7的程序,依据所用到的函数在功能上的限制,自己设计输入的測试数据,执行程序.(1)与自己的期望结果相对比,理解各个函数的使用方法:(2)深入理解数据流

window响应拖拽文件操作

1.首先调用DragAcceptFiles,让控件或者窗体支持文件拖动操作函数功能:用来为拖放文件作初始化.函数原型:void DragAcceptFiles(    HWND hWnd, //指明目标窗体的句柄    BOOL fAccept //为True时 则hWnd所指向的窗体可以接受拖放的文件. ); 2.消息事件中响应拖拽操作(WM_DROPFILES), 调用函数DragQueryFile和DragFinish[1].DragQueryFile函数功能:用来查下拖放文件的文件名.函

iOS学习之iOS沙盒(sandbox)机制和文件操作(一)

1.iOS沙盒机制 iOS应用程序仅仅能在为该改程序创建的文件系统中读取文件,不能够去其他地方訪问,此区域被成为沙盒,所以全部的非代码文件都要保存在此,比如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每一个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去訪问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检測,假如不符合条件的话,不会被放行.     通过这张图仅仅能从表层上理解sandbox是一种安全体系,应用程序的全部操作都要通过这个体系来运行,当中核心