C#文件操作

本文详细介绍了使用C#进行文件操作的方法,包括创建、删除、判断文件是否存在、复制、移动、获取文件名及扩展名等常见操作,并展示了如何利用FileStream、StreamReader与StreamWriter类进行文件的读写。

文件操作

File类,FileInfo类.using System.IO命名空间
(一)创建

方法一:

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void CreateFile_Click(object sender, EventArgs e)
3         {
4             FileStream fs = File.Create(path);
5             fs.Close();//返回FileStream必须释放流
6         }
复制代码

 

方法二:

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void CreateFile_Click(object sender, EventArgs e)
3         {            
4             FileInfo CreateFile = new FileInfo(path);
5             FileStream stream = CreateFile.Create();
6             stream.Close();//返回FileStream类型必须释放流
7         }
复制代码

 

(二)删除

方法一:

1         private string path = @"F:\Text\aaa.txt";
2         private void DeleteFile_Click(object sender, EventArgs e)
3         {
4             File.Delete(path);
5         }

 

方法二:

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void DeleteFile_Click(object sender, EventArgs e)
3         {           
4             FileInfo DeleteFile = new FileInfo(path);
5             DeleteFile.Delete();
6         }
复制代码

 

(三)是否存在

方法一:

复制代码
 1         private string path = @"F:\Text\aaa.txt";
 2         private void ExistFile_Click(object sender, EventArgs e)
 3         {
 4              bool ex = File.Exists(path);            
 5              if (ex)
 6              {
 7                  MessageBox.Show("存在");
 8              }
 9              else
10              {
11                  MessageBox.Show("不存在");
12              }
13         }
复制代码

 

方法二:

复制代码
 1         private string path = @"F:\Text\aaa.txt";
 2         private void ExistFile_Click(object sender, EventArgs e)
 3         {            
 4              FileInfo ExistFile = new FileInfo(path);
 5              bool ex = ExistFile.Exists;
 6              if (ex)
 7              {
 8                  MessageBox.Show("存在");
 9              }
10              else
11              {
12                  MessageBox.Show("不存在");
13              }
14         }
复制代码

 

(四)复制---不能跨盘符

方法一:

1         private string path = @"F:\Text\aaa.txt";
2         private void CopyFile_Click(object sender, EventArgs e)
3         {
4             File.Copy(path, @"F:\Text\bbb.txt");//复制的同时里面的内容也和复制
5         }

 

方法二:

1  private void CopyFile_Click(object sender, EventArgs e)
2         {          
3             FileInfo CopyFile = new FileInfo(path);
4             CopyFile.CopyTo(@"F:\Text\bbb.txt"); //复制的同时里面的内容也和复制
5         }

 

(五)移动(改名)---不能跨盘符

 

注:Move()或MoveTo(): 1.路径不同名字相同(相当于--剪切),

 

          2.路径不同名字不同(相当于--剪切+重命名),

 

          3.路径相同名字不同(相当于--重命名).

 

 且移动是同时将文件夹内的所有对象,移动.

 

方法一:

1         private string path = @"F:\Text\aaa.txt";
2         private void MoveFile_Click(object sender, EventArgs e)
3         {
4             File.Move(path, @"F:\Test\bbb.txt");            
5         }

 

方法二:

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void MoveFile_Click(object sender, EventArgs e)
3         {           
4             FileInfo MoveFIle = new FileInfo(path);
5             MoveFIle.MoveTo(@"F:\Test\ccc.txt");
6         }
复制代码

 

(六)获得文件名

注:只有FileInfo()类一种方法

  1.只获取文件名(貌似没什么用--下面show()的内容就是aaa.txt)

     

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void FileName_Click(object sender, EventArgs e)
3         {
4             FileInfo FileName = new FileInfo(path);
5             string name = FileName.Name;
6             MessageBox.Show(name);
7         }
复制代码

 

  2.或取文件全名(包括路径)

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void FileName_Click(object sender, EventArgs e)
3         {            
4             FileInfo FileName = new FileInfo(path);
5             string name = FileName.FullName;
6             MessageBox.Show(name);
7         }
复制代码

 

(七)获得扩展名

注:只有FileInfo()类一种方法

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void ExtensionName_Click(object sender, EventArgs e)
3         {
4             FileInfo ExtensionName = new FileInfo(path);
5             string exname = ExtensionName.Extension;
6             MessageBox.Show(exname);
7         }
复制代码

 

 

(八)获取辅助属性

注:只有File()类一种方法

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void GetAttribute_Click(object sender, EventArgs e)
3         {
4             FileAttributes Attributes = File.GetAttributes(path);
5             DateTime CreateTime = File.GetCreationTime(path);
6             DateTime LastAccessTime = File.GetLastAccessTime(path);
7             DateTime GetLastWriteTime =  File.GetLastWriteTime(path);
8             MessageBox.Show(Attributes.ToString()+"\n"+CreateTime.ToString()+"\n"+LastAccessTime.ToString()+"\n"+GetLastWriteTime.ToString());
9         }
复制代码

 

(九)修改辅助属性

注:只有File()类一种方法

复制代码
        private string path = @"F:\Text\aaa.txt";
        private void button1_Click(object sender, EventArgs e)
        {
            FileAttributes Attributes = new FileAttributes();
            Attributes = FileAttributes.Hidden;
            File.SetAttributes(path, Attributes);
            File.SetCreationTime(path, DateTime.Now);
            File.SetLastAccessTime(path, DateTime.Now);
            File.SetLastWriteTime(path, DateTime.Now);
        }
复制代码

 

(十)打开保存

  文件读写

注:所有打开new一个新类之后先写 类名.close()

  FileStream类:比较通用。

    打开

复制代码
 1         private string path = @"F:\Text\aaa.txt";
 2         private void Open_Stream_Click(object sender, EventArgs e)
 3         {
 4             FileStream stream = new FileStream(path, FileMode.Open);//读出的数据是以二进制代码形式存储
 5             byte[] nr = new byte[stream.Length];
 6             stream.Read(nr,0,nr.Length);
 7             stream.Close();
 8             //把byte[]的内容变成字符串放在文本框中。
 9             string s = System.Text.Encoding.Default.GetString(nr);
10             textBox1.Text = s;
11         }
复制代码

    保存

复制代码
 1         private string path = @"F:\Text\aaa.txt";
 2         private void Save_Stream_Click(object sender, EventArgs e)
 3         {
 4             //把文本框的字符串变成二进制数组
 5             byte[] nr = System.Text.Encoding.Default.GetBytes(textBox1.Text);
 6             //送到文件中去
 7             FileStream stream = new FileStream(path, FileMode.OpenOrCreate);
 8             stream.Write(nr, 0, nr.Length);
 9             stream.Close();
10         }
复制代码

 

  StreamReader类:

    打开

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void Open_Reader_Click(object sender, EventArgs e)
3         {
4             StreamReader reader = new StreamReader(path, Encoding.Default);
5             string s = reader.ReadToEnd();
6             reader.Close();
7             textBox1.Text = "";
8             textBox1.Text = s;
9         }
复制代码

复制代码
 1         private string path = @"F:\Text\aaa.txt";
 2         private void Open_Writer_Click(object sender, EventArgs e)
 3         {
 4             FileStream stream = new FileStream(path, FileMode.Open);
 5             StreamReader reader = new StreamReader(stream, Encoding.Default);
 6             string s = reader.ReadToEnd();
 7             reader.Close();
 8             stream.Close();
 9             textBox1.Text = s;
10         }
复制代码

 

 

  StreamWriter类:

 

复制代码
1         private string path = @"F:\Text\aaa.txt";
2         private void Save_Writer_Click(object sender, EventArgs e)
3         {
4             StreamWriter writer = new StreamWriter(path, false, Encoding.Default);
5             writer.WriteLine(textBox1.Text);
6             writer.Close();
7         }
复制代码

复制代码
 1        private string path = @"F:\Text\aaa.txt";
 2        private void Save_Writer_Click(object sender, EventArgs e)
 3        {
 4            FileStream stream = new FileStream(path, FileMode.OpenOrCreate);
 5            StreamWriter writer = new StreamWriter(stream);
 6            writer.WriteLine(textBox1.Text);
 7            writer.Close();
 8            stream.Close();
 9        }
10     
复制代码

转载于:https://www.cnblogs.com/IT1517/p/4768336.html

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值