zoukankan      html  css  js  c++  java
  • C# 针对文件夹的操作


    //创建文件夹
    Directory.CreateDirectory(Server.MapPath("a"));
    Directory.CreateDirectory(Server.MapPath("b"));
    Directory.CreateDirectory(Server.MapPath("c"));
    //移动b到a
    Directory.Move(Server.MapPath("b"), Server.MapPath("a\b"));
    //删除c
    Directory.Delete(Server.MapPath("c"));

    //2.---------文件创建、复制、移动、删除---------

    //创建文件
    //使用File.Create创建再复制/移动/删除时会提示:文件正由另一进程使用,因此该进程无法访问该文件
    //改用 FileStream 获取 File.Create 返回的 System.IO.FileStream 再进行关闭就无此问题
    FileStream fs;
    fs = File.Create(Server.MapPath("a.txt"));
    fs.Close();
    fs = File.Create(Server.MapPath("b.txt"));
    fs.Close();
    fs = File.Create(Server.MapPath("c.txt"));
    fs.Close();
    //复制文件
    File.Copy(Server.MapPath("a.txt"), Server.MapPath("a\a.txt"));
    //移动文件
    File.Move(Server.MapPath("b.txt"), Server.MapPath("a\b.txt"));
    File.Move(Server.MapPath("c.txt"), Server.MapPath("a\c.txt"));
    //删除文件
    File.Delete(Server.MapPath("a.txt"));

    //3.---------遍历文件夹中的文件和子文件夹并显示其属性---------

    if(Directory.Exists(Server.MapPath("a")))
    {
         //所有子文件夹
         foreach(string item in Directory.GetDirectories(Server.MapPath("a")))
         {
             Response.Write("<b>文件夹:" + item + "</b><br/>");
             DirectoryInfo directoryinfo = new DirectoryInfo(item);
             Response.Write("名称:" + directoryinfo.Name + "<br/>");
             Response.Write("路径:" + directoryinfo.FullName + "<br/>");
             Response.Write("创建时间:" + directoryinfo.CreationTime + "<br/>");
             Response.Write("上次访问时间:" + directoryinfo.LastAccessTime + "<br/>");
             Response.Write("上次修改时间:" + directoryinfo.LastWriteTime + "<br/>");
             Response.Write("父文件夹:" + directoryinfo.Parent + "<br/>");
             Response.Write("所在根目录:" + directoryinfo.Root + "<br/>");
             Response.Write("<br/>");
         }

         //所有子文件
         foreach (string item in Directory.GetFiles(Server.MapPath("a")))
         {
             Response.Write("<b>文件:" + item + "</b><br/>");
             FileInfo fileinfo = new FileInfo(item);
             Response.Write("名称:" + fileinfo.Name + "<br/>");
             Response.Write("扩展名:" + fileinfo.Extension +"<br/>");
             Response.Write("路径:" + fileinfo.FullName +"<br/>");
             Response.Write("大小:" + fileinfo.Length +"<br/>");
             Response.Write("创建时间:" + fileinfo.CreationTime +"<br/>");
             Response.Write("上次访问时间:" + fileinfo.LastAccessTime +"<br/>");
             Response.Write("上次修改时间:" + fileinfo.LastWriteTime +"<br/>");
             Response.Write("所在文件夹:" + fileinfo.DirectoryName +"<br/>");
             Response.Write("文件属性:" + fileinfo.Attributes +"<br/>");
             Response.Write("<br/>");
         }
    }

    //4.---------文件读写---------

    if (File.Exists(Server.MapPath("a\a.txt")))
    {
         StreamWriter streamwrite = new StreamWriter(Server.MapPath("a\a.txt"));
         streamwrite.WriteLine("木子屋");
         streamwrite.WriteLine("http://www.mzwu.com/");
         streamwrite.Write("2008-04-13");
         streamwrite.Close();

         StreamReader streamreader = new StreamReader(Server.MapPath("a\a.txt"));
         Response.Write(streamreader.ReadLine());
         Response.Write(streamreader.ReadToEnd());
         streamreader.Close();
    }

    获取文件的版本信息:
    FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo("D:\TEST.DLL");
    textBox1.Text="版本号: " + myFileVersionInfo1.FileVersion;

    更改文件属性,删除只读文件:

      下例欲将E: est.txt文件拷贝至D: mp est.txt,但D: mp est.txt已经存在。

    //File.Copy(sourceFile,destinationFile,true); 用来拷贝文件
    //当destinationFile已经存在时,无法将文件file1拷贝到目标文件,
    //因此先删除destination文件,File.Delete()方法不能删除只读文件,
    //因此,如果文件属性为只读(Attributes属性中会包含有"ReadOnly"),
    //先把文件属性重置为Normal,然后再删除:
    string file1="E:\test.txt";
    string destinationFile="d:\tmp\test.txt";
    if(File.Exists(destinationFile))
    {
     FileInfo fi=new FileInfo(destinationFile);
     if(fi.Attributes.ToString().IndexOf("ReadOnly")!=-1)
      fi.Attributes=FileAttributes.Normal;
      File.Delete(destinationFile);
    }
    File.Copy(file1,destinationFile,true);

    判断文件是否存在:File.Exists(string filePath)

      判断目录是否存在:Directory.Exists("D:\LastestVersion")

      按行读取文件:

    int fileCount=0;
    // Open the file just specified such that no one else can use it.
    StreamReader sr = new StreamReader(textBox1.Text.Trim());
    while(sr.Peek() > -1)//StreamReader.Peek()返回下一个可用字符,但不使用它
    {
     listBox1.Items.Add(sr.ReadLine());
     fileCount++;
    }
    sr.Close();

    按行写入文件:
    StreamWriter sw = new StreamWriter("D:\result.txt");
    for(int i=0;i<10;i++)
    {
     sw.WriteLine("这是第"+i.ToString()+"行数据");
    }

    C#追加文件
    StreamWriter sw = File.AppendText(Server.MapPath(".")+"file://mytext.txt/");
    sw.WriteLine("追逐理想");
    sw.WriteLine("kzlll");
    sw.WriteLine(".NET笔记");
    sw.Flush();
    sw.Close();

    C#拷贝文件
    string OrignFile,NewFile;
    OrignFile = Server.MapPath(".")+"file://mytext.txt/";
    NewFile = Server.MapPath(".")+"file://mytextcopy.txt/";
    File.Copy(OrignFile,NewFile,true);

    C#删除文件
    string delFile = Server.MapPath(".")+"file://mytextcopy.txt/";
    File.Delete(delFile);

    C#移动文件
    string OrignFile,NewFile;
    OrignFile = Server.MapPath(".")+"file://mytext.txt/";
    NewFile = Server.MapPath(".")+"file://mytextcopy.txt/";
    File.Move(OrignFile,NewFile);

    C#创建目录
    // 创建目录c:sixAge
    DirectoryInfo d=Directory.CreateDirectory("c:\sixAge");
    // d1指向c:sixAgesixAge1
    DirectoryInfo d1=d.CreateSubdirectory("sixAge1");
    // d2指向c:sixAgesixAge1sixAge1_1
    DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");
    // 将当前目录设为c:sixAge
    Directory.SetCurrentDirectory("c:\sixAge");
    // 创建目录c:sixAgesixAge2
    Directory.CreateDirectory("sixAge2");
    // 创建目录c:sixAgesixAge2sixAge2_1
    Directory.CreateDirectory("sixAge2\sixAge2_1");

    递归删除文件夹及文件
    <%@ Page Language=C#%>
    <%@ Import namespace="System.IO"%>
    <Script runat=server>
    public 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); //删除已空文件夹
            Response.Write(dir+" 文件夹删除成功");
        }
        else
            Response.Write(dir+" 该文件夹不存在"); //如果文件夹不存在则提示
    }

    protected void Page_Load (Object sender ,EventArgs e)
    {
        string Dir="D:\gbook\11";
        DeleteFolder(Dir); //调用函数删除文件夹
    }

  • 相关阅读:
    第十六周 项目一-平方根中的异常
    LeetCode之小孩分糖果
    C#中怎样将List&lt;自己定义&gt;转为Json格式 及相关函数-DataContractJsonSerializer
    (016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)
    物化视图
    FZU2171:防守阵地 II(线段树)
    鸡尾酒排序
    Android BlueDroid(三):BlueDroid蓝牙开启过程enable
    CF Codeforces Round #256 (Div. 2) D (448D) Multiplication Table
    window.open()具体解释及浏览器兼容性问题
  • 原文地址:https://www.cnblogs.com/dullbaby/p/3270620.html
Copyright © 2011-2022 走看看