• 文件夹及文件操作(转)


    C#代码 复制代码 收藏代码
    using System.IO;
    /// <summary>
    /// 获取指定目录下的所有文件夹名
    /// </summary>
    /// <param name="path">目录路径</param>
    /// <returns>string,返回所有文件夹名字</returns>
    public string GetAllFolder(string path)
    {
    	string folder_Names = "";
    	DirectoryInfo dir = new DirectoryInfo(path);
    
    	foreach (DirectoryInfo subdir in dir.GetDirectories())
    		folder_Names += subdir.FullName + ",";
    
    	return folder_Names;
    }



    C#代码 复制代码 收藏代码
    using System.IO;
    /// <summary>
    /// 获取指定目录下的所有文件和文件夹大小
    /// </summary>
    /// <param name="path">目录路径</param>
    /// <returns>string,返回所有文件夹名字</returns>
    protected long GetDirectorySize(string path)
    {
    	long dirSize = 0;
    	DirectoryInfo dir = new DirectoryInfo(path);
    	foreach (FileInfo file in dir.GetFiles())
    		dirSize += file.Length;
    	foreach (DirectoryInfo subdir in dir.GetDirectories())
    		dirSize += GetDirectorySize(subdir.FullName);
    	return dirSize;
    }

    静态生成要在虚拟目录下创建文件夹 来保存生成的页面 那么就要对文件进行操作

    一、创建文件夹
            using System.IO;


            string name = "aa";
            string path = Server.MapPath("") + "\\" + name;
            if (Directory.Exists(path))
            {
            Response.Write("<script>alert('文件夹已存在了!');history.go(-1);</script>");
            }
            else
            {
            DirectoryInfo folder=Directory.CreateDirectory(path);
            string time = Convert.ToString(Directory.GetCreationTime(path));
            string foldername = name.Substring(name.LastIndexOf("\\") + 1);
            Response.Write("添加成功!");
            Response.Write("添加时间:"+time);
            Response.Write("文件夹名:"+foldername);
            }

    二、删除文件夹


            using System.IO;
            string name = "aa";
            string path = Server.MapPath("") + "\\" + name;
            if (Directory.Exists(path))
            {
                Directory.Delete(path);
                Response.Write("删除成功!");
            }
            else
            {
            Response.Write("<script>alert('文件夹不存在!');history.go(-1);</script>");
            }

    三、文件夹的移动

            string name1 = "aa";
            string name2 = "bb\\aa";   
          //移动到的文件夹里,把AA移动到BB里
            string path1 = Server.MapPath("") + "\\" + name1;
            string path2 = Server.MapPath("") + "\\" + name2;
            if (!Directory.Exists(path1))
            {
                Response.Write("<script>alert('文件夹"+name1+"不存在!');history.go(-1);</script>");
                return;
            }
            if (Directory.Exists(path2))
            {
                Response.Write("<script>alert('文件夹" + name2 + "已存在!');history.go(-1);</script>");
                return;
            }
            try
            {
                Directory.Move(path1, path2);
                Response.Write("文件夹移动成功!");
            }
            catch
            {
                Response.Write("<script>alert('必须在同一目录下操作!');history.go(-1);</script>");
            }


    四、获取文件夹下的文件列表


        前台
        <asp:ListBox ID="list" runat="server" Width="200px" Height="300px" Visible="false"></asp:ListBox>
        后台
            string name = "aa";
            string path = Server.MapPath("") + "\\" + name;
            if (!Directory.Exists(path))
            {
                list.Visible = false;
                Response.Write("<script>alert('文件夹" + name + "不存在!');history.go(-1);</script>");
                return;
            }
            else
            {
                DirectoryInfo foldinfo = new DirectoryInfo(path);
                FileSystemInfo[] dirs = foldinfo.GetFileSystemInfos();
                if (dirs.Length < 1)
                {
                    Response.Write("<script>alert('文件夹中没数据!');history.go(-1);</script>");
                    return;
                }
                list.Visible = true;
                list.DataSource = dirs;
                list.DataBind();
            }


    五、创建文件
        string name = "aa.aspx";
            string path = Server.MapPath("") + "\\" + name;
            if (File.Exists(path))
            {
                Response.Write("<script>alert('文件" + name + "已存在!');history.go(-1);</script>");
                return;
            }
            else
            {
                FileStream fs = File.Create(path);
             
                fs.Close();
                Response.Write("文件" + name + "添加成功!");
            }
    六、拷贝文件
          string name1 = "aa\\1.html";
            string name2 = "bb\\1.html";
            string path1 = Server.MapPath("") + "\\" + name1;
            string path2 = Server.MapPath("") + "\\" + name2;
            if (!File.Exists(path1))
            {
                Response.Write("<script>alert('文件" + name1 + "不存在!');history.go(-1);</script>");
                return;
            }
            if (File.Exists(path2))
            {
                Response.Write("<script>alert('文件" + name2 + "已存在!');history.go(-1);</script>");
                return;
            }
            try
            {
                File.Copy(path1, path2);
                Response.Write("拷贝成功!");
            }
            catch
            {
                Response.Write("拷贝失败!");
            }

    七、移动文件
            string name1 = "aa\\1.html";
            string name2 = "bb\\1.html";
            string path1 = Server.MapPath("") + "\\" + name1;
            string path2 = Server.MapPath("") + "\\" + name2;
            if (!File.Exists(path1))
            {
                Response.Write("<script>alert('文件" + name1 + "不存在!');history.go(-1);</script>");
                return;
            }
            if (File.Exists(path2))
            {
                Response.Write("<script>alert('文件" + name2 + "已存在!');history.go(-1);</script>");
                return;
            }
            try
            {
                File.Move(path1, path2);
                Response.Write("移动成功!");
            }
            catch
            {
                Response.Write("移动失败!");
            }

    八、文件删除
            string name = "bb\\1.html";
          string path = Server.MapPath("") + "\\" + name;
         
            if (!File.Exists(path))
            {
                Response.Write("<script>alert('文件" + name + "不存在!');history.go(-1);</script>");
                return;
            }
            try
            {
                File.Delete(path);
                Response.Write("删除成功!");
            }
            catch
            {
                Response.Write("删除失败!");
            }

    九、获取文件的详细信息
    string name = "aa\\11.txt";
          string path = Server.MapPath("") + "\\" + name;
          if (!File.Exists(path))
          {
              Response.Write("<script>alert('文件" + name + "不存在!');history.go(-1);</script>");
              return;
          }
          else
          {
              FileInfo file = new FileInfo(path);
              string filexinxi1, filexinxi2, filexinxi3, filexinxi4, filexinxi5;
              //文件路径
              filexinxi1 = file.FullName;
              //文件大小,字节
              filexinxi2 = file.Length+"字节";
              //文件属性
              filexinxi3 = file.Attributes.ToString();
              //文件创建时间
              filexinxi4 = file.CreationTime.ToShortDateString();
              //文件上次访问时间
              filexinxi5 = file.LastAccessTime.ToShortDateString();
              Response.Write("文件路径:"+filexinxi1+"<br>");
              Response.Write("文件大小:" + filexinxi2 + "<br>");
              Response.Write("文件属性:" + filexinxi3 + "<br>");
              Response.Write("文件创建时间:" + filexinxi4 + "<br>");
              Response.Write("文件上次访问时间:" + filexinxi5 + "<br>");
          }
    十、读取文件内容

        string name = "aa\\11.html";
          string path = Server.MapPath("") + "\\" + name;
          FileInfo fi = new FileInfo(path);
          //获取文件名
          string filename = fi.Name;
            //获取文件扩展名
          string extension = fi.Extension;
            //判断该文件是否为txt格式
          if (extension != ".html")
          {
              Response.Write("<script>alert('请选择html格式文件!');history.go(-1);</script>");
              return;
          }
          StreamReader sr = new StreamReader(path, System.Text.Encoding.Default);
          Response.Write("文件中的内容如下:<br>");
          Response.Write(sr.ReadToEnd());
          sr.Close();
    十一、文件的写入
          string name = "aa\\11.html";
            string content1="<html><title>大家好</title></html>";
          string path = Server.MapPath("") + "\\" + name;
          FileInfo fi = new FileInfo(path);
          //获取文件名
          string filename = fi.Name;
            //获取文件扩展名
          string extension = fi.Extension;
            //判断该文件是否为txt格式
          if (extension != ".html")
          {
              Response.Write("<script>alert('请选择html格式文件!');history.go(-1);</script>");
              return;
          }
          StreamWriter sr = new StreamWriter(path, true, System.Text.Encoding.GetEncoding("gb2312"));
          sr.WriteLine(content1);
          sr.Close();
          Response.Write("文件写入成功!");

     #region 创建目录
            public static void FileCreate(string Path)
            {
                FileInfo CreateFile = new FileInfo(Path); //创建文件
                if (!CreateFile.Exists)
                {
                    FileStream FS = CreateFile.Create();
                    FS.Close();
                }
            }
            #endregion

            #region 递归删除文件夹目录及文件
            /****************************************
             * 函数名称:DeleteFolder
             * 功能说明:递归删除文件夹目录及文件
             * 参    数:dir:文件夹路径
             * 调用示列:
             *           string dir = Server.MapPath( "test/");
             *           EC.FileObj.DeleteFolder(dir);      
            *****************************************/
            /// <summary>
            /// 递归删除文件夹目录及文件
            /// </summary>
            /// <param name="dir"></param>
            /// <returns></returns>
            public static void DeleteFolder(string dir)
            {
                if (Directory.Exists(dir)) //如果存在这个文件夹删除之
                {
                    foreach (string d in Directory.GetFileSystemEntries(dir))
                    {
                        if (File.Exists(d))
                            File.Delete(d); //直接删除其中的文件                       
                        else
                            DeleteFolder(d); //递归删除子文件夹
                    }
                    Directory.Delete(dir, true); //删除已空文件夹                
                }
            }

            #endregion

            #region 将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。
            /****************************************
             * 函数名称:CopyDir
             * 功能说明:将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。
             * 参    数:srcPath:原始路径,aimPath:目标文件夹
             * 调用示列:
             *           string srcPath = Server.MapPath( "test/");
             *           string aimPath = Server.MapPath( "test1/");
             *           EC.FileObj.CopyDir(srcPath,aimPath);  
            *****************************************/
            /// <summary>
            /// 指定文件夹下面的所有内容copy到目标文件夹下面
            /// </summary>
            /// <param name="srcPath">原始路径</param>
            /// <param name="aimPath">目标文件夹</param>
            public static void CopyDir(string srcPath, string aimPath)
            {
                try
                {
                    // 检查目标目录是否以目录分割字符结束如果不是则添加之
                    if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
                        aimPath += Path.DirectorySeparatorChar;
                    // 判断目标目录是否存在如果不存在则新建之
                    if (!Directory.Exists(aimPath))
                        Directory.CreateDirectory(aimPath);
                    // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                    //如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
                    //string[] fileList = Directory.GetFiles(srcPath);
                    string[] fileList = Directory.GetFileSystemEntries(srcPath);
                    //遍历所有的文件和目录
                    foreach (string file in fileList)
                    {
                        //先当作目录处理如果存在这个目录就递归Copy该目录下面的文件

                        if (Directory.Exists(file))
                            CopyDir(file, aimPath + Path.GetFileName(file));
                        //否则直接Copy文件
                        else
                            File.Copy(file, aimPath + Path.GetFileName(file), true);
                    }
                }
                catch (Exception ee)
                {
                    throw new Exception(ee.ToString());
                }
            }
            #endregion



  • 相关阅读:
    20145212 罗天晨 信息搜集与漏洞扫描
    20145212 罗天晨 MSF基础应用
    20145212 罗天晨 《网络对抗》Exp3 Advanced 恶意代码伪装技术实践
    20145212罗天晨 恶意代码分析
    20145212 罗天晨 免杀原理与实践
    20145212罗天晨 后门原理与实践
    计算机取证与司法鉴定实践
    20145210姚思羽 《网络对抗技术》 Web安全基础实践
    20145210姚思羽《网络对抗》Web基础
    20145210姚思羽《网络对抗》网络欺诈技术防范
  • 原文地址:https://www.cnblogs.com/zqn518/p/2816879.html
Copyright © 2020-2023  润新知