C#文件与文件夹操作(创建、移动、删除、复制)

作者:袖梨 2022-06-25

//1.---------文件夹创建、移动、删除---------
//创建文件夹

 代码如下 复制代码
Directory.CreateDirectory(Server.MapPath("a"));
Directory.CreateDirectory(Server.MapPath("b"));
Directory.CreateDirectory(Server.MapPath("c"));
//移动b到a
Directory.Move(Server.MapPath("b"), Server.MapPath("ab"));
//删除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("aa.txt"));
//移动文件
File.Move(Server.MapPath("b.txt"), Server.MapPath("ab.txt"));
File.Move(Server.MapPath("c.txt"), Server.MapPath("ac.txt"));
//删除文件
File.Delete(Server.MapPath("a.txt"));


C#追加文件

 代码如下 复制代码

 StreamWriter sw = File.AppendText(
                Server.MapPath(".") + "myText.txt");
            sw.WriteLine("追逐理想");
            sw.WriteLine("kzlll");
            sw.WriteLine(".NET笔记");
            sw.Flush(); sw.Close();

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

 代码如下 复制代码
if(Directory.Exists(Server.MapPath("a")))
{
    //所有子文件夹
    foreach(string item in Directory.GetDirectories(Server.MapPath("a")))
    {
        Response.Write("文件夹:" + item + "
");
        DirectoryInfo directoryinfo = new DirectoryInfo(item);
        Response.Write("名称:" + directoryinfo.Name + "
");
        Response.Write("路径:" + directoryinfo.FullName + "
");
        Response.Write("创建时间:" + directoryinfo.CreationTime + "
");
        Response.Write("上次访问时间:" + directoryinfo.LastAccessTime + "
");
        Response.Write("上次修改时间:" + directoryinfo.LastWriteTime + "
");
        Response.Write("父文件夹:" + directoryinfo.Parent + "
");
        Response.Write("所在根目录:" + directoryinfo.Root + "
");
        Response.Write("
");
    }
    //所有子文件
    foreach (string item in Directory.GetFiles(Server.MapPath("a")))
    {
        Response.Write("文件:" + item + "
");
        FileInfo fileinfo = new FileInfo(item);
        Response.Write("名称:" + fileinfo.Name + "
");
        Response.Write("扩展名:" + fileinfo.Extension +"
");
        Response.Write("路径:" + fileinfo.FullName +"
");
        Response.Write("大小:" + fileinfo.Length +"
");
        Response.Write("创建时间:" + fileinfo.CreationTime +"
");
        Response.Write("上次访问时间:" + fileinfo.LastAccessTime +"
");
        Response.Write("上次修改时间:" + fileinfo.LastWriteTime +"
");
        Response.Write("所在文件夹:" + fileinfo.DirectoryName +"
");
        Response.Write("文件属性:" + fileinfo.Attributes +"
");
        Response.Write("
");
    }
}

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

 代码如下 复制代码

if (File.Exists(Server.MapPath("aa.txt")))
{
    StreamWriter streamwrite = new StreamWriter(Server.MapPath("aa.txt"));
    streamwrite.WriteLine("ABCD数据库");
    streamwrite.WriteLine("http://www.111com.net/");
    streamwrite.Write("2012-05-15");
    streamwrite.Close();

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

//文件夹删除

 代码如下 复制代码

〈%@PageLanguage=C#%〉 
        〈%@Importnamespace="System.IO"%〉 
        〈Scriptrunat=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,EventArgse)
    ...{ 
        stringDir="D:gbook11"; 
        DeleteFolder(Dir);//调用函数删除文件夹
    }
        //======================================== 
        //实现一个静态方法将指定文件夹下面的所有
        //内容copy到目标文件夹下面 
        //如果目标文件夹为只读属性就会报错。 
        //April18April2005InSTU 
        //======================================== 
        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 e)
            ...{
                MessageBox.Show(e.ToString()); 
            } 
        } 
   
    //======================================== 
    //实现一个静态方法将指定文件夹下面的所有内容Detele 
    //测试的时候要小心操作,删除之后无法恢复。
    //April18April2005InSTU 
    //======================================== 
    public static void DeleteDir(string aimPath) 
    ...{ 
        try
        ...{
            //检查目标目录是否以目录分割
            //字符结束如果不是则添加之
            if(aimPath[aimPath.Length-1] !=
                Path.DirectorySeparatorChar)
                aimPath+=Path.DirectorySeparatorChar;
            //得到源目录的文件列表,该里面是
            //包含文件以及目录路径的一个数组
            //如果你指向Delete目标文件下面的
            //文件而不包含目录请使用下面的方法 
            //string[]fileList=  Directory.GetFiles(aimPath); 
            string[]fileList= 
                Directory.GetFileSystemEntries(aimPath); 
            //遍历所有的文件和目录
            foreach(string file in fileList) 
            ...{
                //先当作目录处理如果存在这个
                //目录就递归Delete该目录下面的文件
                if(Directory.Exists(file)) 
                ...{
                    DeleteDir(
                        aimPath+Path.GetFileName(file)); 
                } 
                //否则直接Delete文件
                else
                ...{
                    File.Delete(
                        aimPath+Path.GetFileName(file));
                } 
            } 
            //删除文件夹
            System.IO.Directory.Delete(aimPath,true); 
        } 
        catch(Exceptione) 
        ...{ 
            MessageBox.Show(e.ToString()); 
        }
    }  

好了关于C#创建文件夹与文件的一些具体实现的操作就先你介绍到这里,希望对你了解和学习C#创建文件夹的过程以及实现相关的权限设置有所帮助。

相关文章

精彩推荐