C#操作目录和文件

  •  创建目录和文件

1、通过Path类的Combine方法可以合并路径。

            string activeDir = @"C:\myDir";
            string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne");

2、目录的创建。

创建目录时如果目录已存在,则不会重新创建目录,且不会报错。创建目录时会自动创建路径中各级不存在的目录。
      (1)通过Directory类的CreateDirectory方法创建。

            string activeDir = @"C:\myDir";
            string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne");
            System.IO.Directory.CreateDirectory(newPath);

(1)通过DirectoryInfo的对象创建。

            System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\myDirTwo\mySubDirThree");
            di.Create();

3、文件的创建。

通过Create方法创建文件,会覆盖同名的现有文件。创建文件时,该文件所在路径的目录必须存在,否则报错。

(1)通过File类的Create方法创建。

            string activeDir = @"C:\myDir";
            string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne");
            System.IO.Directory.CreateDirectory(newPath);

            //创建一个空白文件
            string fileNameOne = DateTime.Now.ToString("yyyyMMddHHmmssffff")
                + ".txt";
            string filePathOne = System.IO.Path.Combine(newPath, fileNameOne);
            System.IO.File.Create(filePathOne);

(2)通过FileInfo对象创建。

            //通过Combine合并目录
            //然后创建目录
            string activeDir = @"C:\myDir";
            string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne");
            System.IO.Directory.CreateDirectory(newPath);

            //创建一个空白文件
            string fileNameOne = DateTime.Now.ToString("yyyyMMddHHmmssffff")
                + ".txt";
            string filePathOne = System.IO.Path.Combine(newPath, fileNameOne);
            System.IO.FileInfo fi = new System.IO.FileInfo(filePathOne);
            fi.Create();

  •  复制目录文件

            //复制单个文件到指定目录
            string fileName = "test.txt";
            string sourcePath = @"C:\testDir\subTestDir";
            string targetPath = @"C:\testDir\subTestDirTwo";

            string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
            string destFile = System.IO.Path.Combine(targetPath, fileName);

            if (!System.IO.Directory.Exists(targetPath))
                System.IO.Directory.CreateDirectory(targetPath);

            //如果已存在,参数为false时将报错,参数为true重写该文件
            //当copy方法为两个参数时,默认重写为false。
            System.IO.File.Copy(sourceFile, destFile, true);

            //以下为复制一个目录下所有文件到指定目录
            //如果复制有子目录的目录的所有文件,可以用递归或堆栈算法实现
            if (System.IO.Directory.Exists(sourcePath))
            {
                string[] files = System.IO.Directory.GetFiles(sourcePath);

                foreach (string s in files)
                {
                    //仅返回路径字符串的文件名及后缀
                    fileName = System.IO.Path.GetFileName(s);
                    destFile = System.IO.Path.Combine(targetPath, fileName);
                    System.IO.File.Copy(s, destFile, true);
                }
            }

        }

  •  移动目录和文件

            /*移动文件*/
            string sourceFile = @"C:\testDir\subTestDir\test.txt";
            string destFile = @"C:\testDir\subTestDirTwo\test.txt";
            //当目标文件存在时,抛出异常
            System.IO.File.Move(sourceFile, destFile);

            /*移动目录*/
            //移动目录将移动改目录的子目录和文件
            System.IO.Directory.Move(@"C:\testDir\subTestDirTwo\", @"C:\testDir\subTestDir");

  •  删除目录和文件

     1、删除目录

删除目录,如果该目录不存在,会抛出异常。可以通过File类的Delete方法删除目录,也可以通过FileInfo对象方法删除目录。

(1)通过 File类的Delete方法删除目录

            //删除可写空目录
            //如果不为空抛出目录不为空异常
            try
            {
                System.IO.Directory.Delete(@"C:\testDir\subTestDir");
            }
            catch (System.IO.IOException e)
            {
                Console.WriteLine(e.Message);
            }

            //第二参数为false时,只能删除空目录,否则抛出不为空异常
            //第二参数为true时,删除目录,包括子目录和文件
            try
            {
                System.IO.Directory.Delete(@"C:\testDir\subTestDir", true);
            }
            catch(System.IO.IOException e)
            {
                Console.WriteLine(e.Message);
            }

(2)通过FileInfo对象方法删除目录

    System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\testDir\subTestDirTwo");
            try
            {
                //无参数删除空目录
                //当参数为false,可删除空目录;为true,删除目录,包括子目录和文件
                di.Delete(true);
            }
            catch (System.IO.IOException e)
            {
                Console.WriteLine(e.Message);
            }

2、删除文件

删除文件时如果指定文件的目录存在,而文件不存在,则不会抛出异常,如果指定文件的目录不存在,则会抛出异常。

(1)通过File类Delete方法删除文件

                try
                {
                    System.IO.File.Delete(@"C:\testDir\subTestDir\test.txt");
                }
                catch(System.IO.IOException e)
                {
                    Console.WriteLine(e.Message);
                }

(2)通过FileInfo对象Delete方法删除文件

            System.IO.FileInfo fi = new System.IO.FileInfo(@"C:\testDir\subTestDir\test1.txt");
            try
            {
                fi.Delete();
            }
            catch(System.IO.IOException e)
            {
                Console.WriteLine(e.Message);
            }

转载:http://www.cnblogs.com/wanghonghu/archive/2012/07/04/2574579.html

时间: 2024-12-11 20:20:21

C#操作目录和文件的相关文章

选择目录操作目录下文件

private void resndbtn_Click(object sender, EventArgs e) { using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) { DialogResult result = folderBrowserDialog.ShowDialog(); try { if (result == DialogResult.OK) { string folderName =

09-删除目录及文件操作

文件操作基础知识: Directory //操作目录(文件夹),静态类. DirectoryInfo //文件夹的一个“类”,实例类.用来描述一个文件夹对象(获取指定目录下的所有目录时返回一个DirectoryInfo数组.返回文件夹数组) FileInfo //文件类,实例类.用来描述一个文件对象.获取指定目录下的所有文件时,返回一个FileInfo数组. 例:删除F:\a下所有文件夹及文件夹里文件: using System; using System.Collections.Generic

SVNKit学习——使用低级别的API(ISVNEditor接口)直接操作Repository的目录和文件(五)

本文是参考官方文档的实现,官方wiki:https://wiki.svnkit.com/Committing_To_A_Repository 本文核心使用的是ISVNEditor这个接口直接对Repository进行各种AM操作~ 以下两张示例图分别代表我们操作前.操作后仓库的结构: 具体实现: package com.demo; import com.google.gson.Gson; import org.tmatesoft.svn.core.*; import org.tmatesoft.

目录和文件举例

PHP如何操作目录与文件? 一.文件目录操作 文件目录是指存储在磁盘中的文件的索引,也可以将其视为一个文件夹,在这个文件夹中可以存放其他文件或文件夹.最顶层的目录是磁盘的根目录,用"/"或"\\"表示."/"表示当前工作目录,"../"表示Apache的文件根目录.文件夹前不指定位置,则默认在当前工作目录中查找. 1.创建和删除目录 使用mkdir()函数可以根据提供的目录名或目录的全路径,创建新的目录,成功则返回TRUE,否

环境变量,属性文件,文件基础操作,目录基础操作,遍历指定后缀名文件

环境变量和属性 环境变量相关: 1.得到某个/所有环境变量的值 2.设置环境变量的值 3.列出全部系统属性名 import java.util.Enumeration; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; public class Environment { public static void main(String[] args) { // TODO Auto-gener

[Python] 目录和文件操作

在Linux系统下用Python写脚本,肯定不能避免各种与目录和文件夹有关的操作.为了以后方便查阅,简单地针对Python中与目录和文件夹有关的操作进行汇总. 需要实现导入的模块为: import os 1. 得到当前工作目录,即当前Python脚本工作的目录路径: path=os.getcwd() 在这里引用一个比较好的例子,来源于:牛皮糖的旅程 我们将abc.py放入A文件夹.并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹.且文件夹的名字根据时间自动生成. im

.Net常用技巧_目录与文件操作

using System; using System.Collections.Generic; using System.Text; using System.IO; namespace MyTool { public class FileOperator { /// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory">目录字符串</param>

尝试 “实验楼” 目录及文件操作 (2)

创建文件夹:-mkdir <span style="font-size:18px;">[email protected]:~$ mkdir testdir # 创建testdir文件夹 [email protected]:~$ ls # ls命令可以看到你所创建的文件夹</span> 删除文件夹:-rmdir <span style="font-size:18px;">[email protected]:~$ rmdir test

PHP核心编程--目录操作(包含文件操作)

一.目录操作 1.    创建目录 创建目录mkdir(目录名称)  //返回值为布尔 一次性创建主目录及其子目录 判断是不是一个目录is_dir  //返回true,false 判断目录或文件是否存在file_exists  //返回值为布尔 返回路径中的目录部分 dirname 2.    打开目录, opendir — 打开目录句柄 opendir(目录路径) //返回的是一个目录句柄. readdir(目标句柄)  //读取目录中的条目,  目录名为零的处理 //目录名中文的处理 ico