zoukankan      html  css  js  c++  java
  • 文件以及目录常用操作

                // 由于File.Create方法默认向所有用户授予对新文件的完全读/写访问权限,
                //所以文件是用读/写访问权限打开的,必须关闭后才能由其他应用程序打开。
                //为此,所以需要使用FileStream类的Close方法将所创建的文件关闭。

                //File只能被一个流读写,用完需要关闭。


                //FileStream和Stream的区别
                //FileStream对象表示在磁盘或网络路径上指向文件的流。
                //这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。
                //这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据.
                DirectoryInfo di = Directory.CreateDirectory("D:\tempFiles");

                // craete 对目录是否存在,需要进行判定;如果创建的文件存在,返回同名文件;文件流用完需要关闭
                FileStream fs = File.Create(@"D: empFiles est3.txt");
                fs.Close();
               
                //字符串和字节数组转换
                Encoding encoder = Encoding.UTF8;//
                byte[] info = encoder.GetBytes("HelloWorld! 1");//字符串转为字节数组
                string strOrign = Encoding.UTF8.GetString(info);//字节数组转为字符串
               
                //生成文件换行
                string strNewLine = " ";//一定是   反了就错了
                strNewLine = System.Environment.NewLine;//等价与 /r/n

                //open    FileMode.Append 如果有则打开,如果没有则创建。
                FileStream fs1 = File.Open(@"D: empFiles est5.txt", FileMode.Open);
             
                //wirte字节
                fs1.Position = fs1.Length;
                fs1.Write(info, 0, info.Length);

                //read字节
                fs1.Position = 0;
                byte[] readInfo = new byte[fs1.Length];
                fs1.Read(readInfo, 0, (Int32)fs1.Length);
               
                fs1.Close();

                //exists delete
                File.Exists("路径");
                File.Delete("路径");


                //copy overwrite 表示文件存在时,是否可以覆盖;

                File.Copy(@"D: empFiles est5.txt", @"D: empFiles est5.txt", false);//同名报错
                File.Copy(@"D: empFiles est5.txt", @"D: empFiles est5.txt", true);//可以覆盖

                //move 当文件存在是会报错,需要和exists连用
                File.Move(@"D: empFiles est5.txt", @"D: empFiles est.txt");
               

                //追加写字符串
                StreamWriter sw = new StreamWriter(@"D: empFiles est2.txt", true);
                sw.Write("HelloWorld! 1");
                sw.Close();

                //初次创建文件并写字符串
                FileStream fs2 = File.Create(@"D: est.txt");
                StreamWriter sw2 = new StreamWriter(fs2);
                sw2.Write("HelloWorld! 1");
                sw2.Close();
                sw2.Close();
                fs2.Close();

                //读取文件字符形式
                StreamReader sr = new StreamReader(@"D: est.txt");
                string strLine = sr.ReadLine();
                while (!string.IsNullOrEmpty(strLine))
                {
                    Console.WriteLine(strLine);
                    strLine = sr.ReadLine();
                }
              
                //文件属性
                FileInfo fi = new FileInfo(@"D: est.txt");
                StreamWriter sw3 = fi.AppendText();
                DateTime dt = fi.CreationTime;//创建时间  2013--7-7 16:07:08
                DateTime dt2 = fi.LastWriteTime;//最后一次写入时间 2013--7-7 16:35:08
                string FileExtension = fi.Extension;//扩展名 .txt
                string fullname = fi.FullName;//完整目录 D: est.txt
                DirectoryInfo dir = fi.Directory;  //父级目录对象 D:
                string dirName = fi.DirectoryName;  //父级目录字符串 D:


             
                // 目录

                DirectoryInfo dir2 = Directory.CreateDirectory(@"D: emp2");//当存在时,返回目录
                Directory.Delete(@"D: emp2", true);//true 表示可以删除子目录以及子文件
                bool isExist = Directory.Exists(@"D: emp2");
                DateTime dt4 = Directory.GetCreationTime(@"D: emp2");
                Directory.Move(@"D: emp2", @"D: emp3");//移动

                //目录查询
                // 得到系统目录
                DriveInfo[] DriveList = DriveInfo.GetDrives(); // 返回 C: D: 等


                //得到目录下的文件集合

                // 通过Diertory 得到集合
                foreach (string item in Directory.GetFiles(@"D:")) //返回的是 D: est.test  返回的是全路径
                    Console.WriteLine(item);
                foreach (string item in Directory.GetDirectories(@"D:")) //返回的是 D: est.test  返回的是全路径
                    Console.WriteLine(item);

                //通过DiroryInfo得到集合
                DirectoryInfo dir3 = new DirectoryInfo(@"D:");
                FileInfo[] fileInfos = dir3.GetFiles();
                foreach (FileInfo fi3 in fileInfos)
                    Console.WriteLine(fi3.FullName + fi3.Name + " ");

                DirectoryInfo[] dirs = dir3.GetDirectories();
                foreach (DirectoryInfo item in dirs)
                    Console.WriteLine(item.FullName + item.Name);

                //遍历目录下所有文件

                GetFiles(@"D:");//显示每一个文件名           

               public static void GetFiles(string path)
              {

                  //如果是文件的话
                  if (File.Exists(path))
                  {
                    return;
                  }
                  //如果是目录的话
                  if (Directory.Exists(path))
                  {
                    foreach (FileInfo item in new DirectoryInfo(path).GetFiles())
                        Console.WriteLine(item.FullName);
                    foreach (DirectoryInfo item in new DirectoryInfo(path).GetDirectories())
                        GetFiles(item.FullName);
                    return;

                 }
             }

                //对路径字符串的处理
                string path = Path.Combine(@"D:", @"test.txt");
                Path.GetDirectoryName(path);//D:
                Path.GetExtension(path);//.txt
                Path.GetFileName(path);//test.txt
                Path.GetFullPath(path);//D: est.txt
                Path.HasExtension(path);//true

               

  • 相关阅读:
    php利用__callStatic静态调用同类中非静态方法
    Using $this when not in object context错误原因及解决办法
    fastadmin权限修改
    call_user_func()
    php empty()奇怪现象
    LF will be replaced by CRLF in vendor/
    git放弃本地,强制拉取远程
    tp5防xss攻击方法
    php curl
    关于Mac设置alias别名访问服务器
  • 原文地址:https://www.cnblogs.com/wwwfj/p/3176616.html
Copyright © 2011-2022 走看看