C# 文件操作笔记

文件夹

1.存在:

 if(Directory.Exists(dirPath)

{

}

2.获取文件夹内文件信息:

                DirectoryInfo di = new DirectoryInfo(dirPath);
                foreach (FileInfo fi in di.GetFiles())
                {
                  
                        len1 = fi.Length;
fi.FullName;

......
                }


3.获取文件夹内,文件夹信息

 DirectoryInfo[] dis = di.GetDirectories();


4.创建文件夹

 Directory.CreateDirectory(desdir);


文件

1.存在:

 if(File.Exists(filePath)

{

}


====================================================================================================================
 1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;
    2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找;
    3. DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInfo[],支持通配符查找;
如何获取指定文件的基本信息;
    FileInfo.Exists:获取指定文件是否存在;
    FileInfo.Name,FileInfo.Extensioin:获取文件的名称和扩展名;
    FileInfo.FullName:获取文件的全限定名称(完整路径);
    FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo;
    FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);
    FileInfo.Length:获取文件的大小(字节数);
    FileInfo.IsReadOnly:获取文件是否只读;
    FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合
    FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;


文件名字符串操作

1.获取文件名

nameList[i].Substring(nameList[i].LastIndexOf("\\")+1);


2.获取文件路径

nameList[i].Substring(0,nameList[i].LastIndexOf("\\"));



保存到txt

      private void SaveTextBox(string filename)
        {
            if(!Directory.Exists(@".\save"))
            {
                Directory.CreateDirectory(@".\save");
            }          
            string strfile = @".\save\" + filename+".txt";

           // FileStream fileStream = new FileStream(strfile, FileMode.OpenOrCreate);    //新建文件流

    FileStream fileStream = new FileStream(strfile, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);  //读写打开,不会阻塞;
            StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.Default);   //写流

            string textfile = textBox1.Text;
            string[] textline = textfile.Split( '\n');   //分行
            for (int i = 0; i < textline.Length; i++)    //分行写入
            {
                streamWriter.Write(textline[i] + "\r\n");
            }
            streamWriter.Flush();
            streamWriter.Close();
            fileStream.Close();
           
        }




复制文件到某个目录
        private bool CopyFile(string filepath, string desdir)
        {
            string srcfileName = filepath.Substring(filepath.LastIndexOf("\\") + 1);
            srcfileName = desdir + "\\" + srcfileName;    //目标文件
            if (!Directory.Exists(desdir))           //判定目标目录存在
            {
                Directory.CreateDirectory(desdir);
            }


            try
            {
                File.Copy(filepath, srcfileName, true); //over write
                return true;
            }
            catch (Exception ex)
            {
                //AddTextBox("copy file error:" + ex.Message);
                return false;


            }
        }




文件名字符串操作

1.获取文件名

nameList[i].Substring(nameList[i].LastIndexOf("\\")+1);


2.获取文件路径

nameList[i].Substring(0,nameList[i].LastIndexOf("\\"));



参考链接:

http://blog.csdn.net/donthan/article/details/17310975


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET跨平台框架选择之一 - Avalonia UI

本文阅读目录1. Avalonia UI简介Avalonia UI文档教程&#xff1a;https://docs.avaloniaui.net/docs/getting-started随着跨平台越来越流行&#xff0c;.NET支持跨平台至今也有十几年的光景了(Mono[1]开始)。但是目前基于.NET[2]的跨平台&#xff0c;大多数还是在使用B/S架构的…

网络串流_串流NBA篮球的最便宜方式(无需电缆)

网络串流I love NBA basketball. Every year, I get really excited around the beginning of September because I know tip-off is approaching. This year, I also had to figure out how I’m going to watch the Bulls (lose almost every game) with a combination of st…

tornado 第一篇

一&#xff1a;异步和非阻塞IO 实时的web特性通常需要每个用户一个大部分时间&#xff0c;在传统的同步web服务器中&#xff0c;这意味着需要给每个用户分配一个专用的线程&#xff0c;这样的开销是十分巨大 tornado使用啦一种单线程事件循环的方式&#xff0c;这意味着所有的应…

最近找工作面的面试题目汇总(一)

网址&#xff1a;http://www.cnblogs.com/renyiqiu/p/6504839.html 目录 1.抽象类的介绍&#xff0c;抽象类里的虚函数和抽象函数 参考文档抽象类特征抽象方法特征2.虚函数和抽象方法 参考文档虚方法的特点虚方法(virtual)和抽象方法(abstract)的区别3.静态类和静态类成员 参考…

你认识的C# foreach语法糖,真的是全部吗?

本文的知识点其实由golang知名的for循环陷阱发散而来&#xff0c; 对应到我的主力语言C#&#xff0c; 其实牵涉到闭包、foreach。为了便于理解&#xff0c;我重新组织了语言&#xff0c;以倒叙结构行文。先给大家提炼出一个C#题&#xff1a;观察for、foreach闭包的差异左边输出…

C#对window 硬件类操作,ManagementObjectSearcher

原文转载&#xff1a;http://blog.csdn.net/da_keng/article/details/50589145 纯属转载&#xff0c;复制过来方便编程时寻找。感谢作者&#xff1a;I-Awakening复制前补充&#xff1a; 在刚学C#&#xff0c;用ManagementObjectSearcher 竟然不能解析到头文件&#xff0c;需要手…

2018第51周日

从人们开始用电脑开始就面临着文件版本控制的问题&#xff0c;从最原始的同一个文档多个不同命名表示版本到使用本地的文件版本管理&#xff0c;到后面集中式版本管理如2000年的SVN&#xff0c;到再后来的分布式的版本控制系统&#xff0c;如2005年的Git。到现在用的最多的版本…

twitter批量取消关注_如何在Twitter上取消阻止“潜在敏感内容”

twitter批量取消关注Twitter推特Twitter blocks some tweets with a “potentially sensitive content” warning. You can disable this warning—even on an iPhone or iPad, where the option isn’t normally available. You can also disable sensitive content warnings …

mysql数值类型总结及常用函数

最近在学习下&#xff0c;总结一下mysql数值类型&#xff1b; mysql字符类型分&#xff1a; 1、整数类型&#xff1a; 字节 值范围 INTERGER 1 -127-128 SMALLINT 2 MEDIUMINT…

Semantic-UI的React实现(二):CSS类构造模块

更简单的类名标签 Semantic-UI使用了更简单的类名声明。用过Bootstrap的同学都会被其复杂的类名标签折磨过&#xff0c;例如一个简单的按键样式&#xff0c;不论颜色或是大小&#xff0c;都需要btn-前缀声明&#xff1a; <button type"button" class"btn btn…

skype自动回复_如何在Windows 10上阻止Skype自动启动

skype自动回复Microsoft微软The Skype app included with Windows 10 now has a notification area icon. That’s great, but what if you never use Skype and don’t want it starting every time you sign in? Here’s how to get rid of it. Windows 10随附的Skype应用程…

Vue 组件实例属性的使用

前言 因为最近面试了二、三十个人&#xff0c;发现大部分都还是只是停留在 Vue 文档的教程。有部分连教程这部分的文档也没看全。所以稍微写一点&#xff0c;让新上手的 Vuer 多了解 Vue 文档的其他更需要关注的点。 因为 Vue 文档已经是个很成熟的文档&#xff0c;并且实现的 …

C# 读取硬盘信息类

在编写工具检查硬盘信息时&#xff0c;总结常用到的类&#xff1a; Win32_DiskDrive 这个用了检查整个硬盘的信息&#xff0c;如果电脑只有一个硬盘&#xff0c;那只显示一条信息。参考如下代码&#xff0c;AddTextBox为自定义显示函数。&#xff08;MSDN class 查询&#xff1…

95后沪漂女孩深陷“狠”且“卷”职场,向上思维,永不过时!

hi&#xff0c;这里是桑小榆。最近和一个伙伴oncall了很久&#xff0c;对我的文章以及思想转变产生了很大的共鸣&#xff0c;她向我分享了一些职场经历还有成长经历等&#xff0c;她的这些经历也让我引发了一定的思考。光光&#xff0c;最近刚升任了部门主管&#xff0c;对于当…

PHP:6种GET和POST请求发送方法

在i94web博客中&#xff0c;我试过了畅言和多说两种社会化评论框&#xff0c;后来还是抛弃了畅言&#xff0c;不安全。 无论是畅言还是多说&#xff0c;我都需要从远程抓取文章的评论数&#xff0c;然后存入本地数据库。对于多说&#xff0c;请求的格式如下&#xff1a; // 获取…

解决Ubuntu 16.04下提示boot分区空间不足的办法

原文地址: http://www.jb51.net/article/106976.htm   https://www.linuxidc.com/Linux/2015-09/123227.htm 因为linux内核一直在更新&#xff0c;更新后&#xff0c;旧的内核就不在使用&#xff0c;但旧的内核文件还在boot里面&#xff0c;占据着空间&#xff0c;更新几次过…

3d镜头 适配_您是否应该将镜头适配器与无反光镜相机一起使用?

3d镜头 适配Canon佳能Mirrorless cameras aren’t the future, they’re the present. If you’re switching from an older DSLR, though, the obvious thing to do is just buy an adapter so you can keep using your old gear. 无反光镜相机不是未来&#xff0c;而是现在。…

C#弹窗提示并自动关闭方法

刚学C#不久&#xff0c;就写个工具&#xff0c;总结写一个简便自定义提示窗口方法&#xff0c;并自动关闭。 1.在项目添加windows form&#xff08;非user control&#xff09;&#xff0c;命名为Form_wait。 2.在Form_wait,加入需要控件与一个定时器timer1。 数字10为计时显…

dotNET 7:最小 API 使用

最小 API 并不是在 .NET 7 中才加入的&#xff0c;记得应该是在 .NET 6 中就已经提供&#xff0c;只是对我来说&#xff0c;到现在才开始使用。创建一个最小 API在 VS 2022 中创建 WebAPI 项目&#xff0c;不勾选使用控制器&#xff0c;创建出来的就是最小 API &#xff1a;不勾…

Taro小程序采坑记

Taro&#xff0c;京东凹凸实验室出品的适配多端的一个框架&#xff0c; Taro 是一套遵循 React 语法规范的 多端开发 解决方案。现如今市面上端的形态多种多样&#xff0c;Web、React-Native、微信小程序等各种端大行其道&#xff0c;当业务要求同时在不同的端都要求有所表现的…