文件操作小结

1,遍历
C#遍历指定文件夹中的所有文件
DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);
//遍历文件夹
foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories())
this.listBox1.Items.Add(NextFolder.Name);
//遍历文件
foreach(FileInfo NextFile in TheFolder.GetFiles()) //foreach(FileInfo NextFile in TheFolder.GetFiles(“*.cs”)) 找类文件
this.listBox2.Items.Add(NextFile.Name);

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:分别用于获取文件的创建时间、访问时间、修改时间;

2,读写

 
 //创建并写入(将覆盖已有文件)
      if (!File.Exists(path))
      {          
         using (StreamWriter sw = File.CreateText(path))
         {
            sw.WriteLine("Hello");
         } 
      }
      //读取文件
      using (StreamReader sr = File.OpenText(path)) 
      {
        string s = "";
        while ((s = sr.ReadLine()) != null) 
        {
           Console.WriteLine(s);
             if (s.IndexOf("aaa") != -1)
                {
                   //.... 搜索文件是否包含某关键字
                }
        }
     }
     //删除/拷贝
     try 
     {
        File.Delete(path);
        File.Copy(path, @"f:\tt.txt");
     } 
     catch (Exception e) 
     {
        Console.WriteLine("The process failed: {0}", e.ToString());
     }
   }
 
 
//查找关键字是否存在于指定目标所有文件中的任一
    private void SearchKeyWordListInDirectroyFiles(string DirectoryPath, IList KeyWordsList,string filePattern ) {
        //KeyWordsList,关键字集合,filePattern指定搜索哪些文件,notFile指定不搜索哪个文件
        try
        {
            DirectoryInfo di = new DirectoryInfo(DirectoryPath);
            foreach (FileInfo NextFile in di.GetFiles(filePattern))
            {
                using (StreamReader sr = NextFile.OpenText())
                    {
                        string s = "";
                        while ((s = sr.ReadLine()) != null)
                        {
                            for (int i = 0; i < KeyWordsList.Count; i++)
                            {
                                if (s.IndexOf(KeyWordsList[i].ToString()) != -1)
                                {
                                    KeyWordsList.RemoveAt(i);
                                }
                            }
                        }
                    }
 
            }
 
            foreach (DirectoryInfo NextFolder in di.GetDirectories())
            {
                SearchKeyWordListInDirectroyFiles(NextFolder.FullName, KeyWordsList, filePattern);
            }
 
        }
        catch (Exception e) { 
 
        }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,文件操作是非常常见的一种操作。通过文件操作,我们可以读取、写入文件,实现数据的持久化存储。下面是一些关于C++文件操作的实验小结: 1.文件读取: 文件读取可以使用ifstream类,它是从istream派生而来的一个类,可以用来读取文件中的内容。 ```c++ #include <iostream> #include <fstream> using namespace std; int main() { ifstream infile("test.txt"); //打开文件 if(!infile.is_open()) //判断文件是否打开成功 { cout<<"文件打开失败!"<<endl; return 0; } char ch; while(infile.get(ch)) //从文件中读取字符 { cout<<ch; } infile.close(); //关闭文件 return 0; } ``` 2.文件写入: 文件写入可以使用ofstream类,它是从ostream派生而来的一个类,可以用来写入文件。 ```c++ #include <iostream> #include <fstream> using namespace std; int main() { ofstream outfile("test.txt"); //打开文件 if(!outfile.is_open()) //判断文件是否打开成功 { cout<<"文件打开失败!"<<endl; return 0; } outfile<<"Hello, world!"; //向文件中写入内容 outfile.close(); //关闭文件 return 0; } ``` 3.文件复制: 文件复制可以使用ifstream和ofstream类配合使用,先读取文件中的内容,再将其写入到另一个文件中。 ```c++ #include <iostream> #include <fstream> using namespace std; int main() { ifstream infile("test.txt"); //打开源文件 if(!infile.is_open()) //判断源文件是否打开成功 { cout<<"源文件打开失败!"<<endl; return 0; } ofstream outfile("test_copy.txt"); //打开目标文件 if(!outfile.is_open()) //判断目标文件是否打开成功 { cout<<"目标文件打开失败!"<<endl; return 0; } char ch; while(infile.get(ch)) //从源文件中读取内容并写入到目标文件中 { outfile.put(ch); } infile.close(); //关闭源文件 outfile.close(); //关闭目标文件 return 0; } ``` 总之,文件操作是C++中常用的操作之一,需要掌握常用的文件操作函数和类,以便实现数据的持久化存储和读取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值