欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#操作目录与文件的方法步骤

程序员文章站 2023-12-19 09:17:34
• 创建目录和文件1、通过path类的combine方法可以合并路径。复制代码 代码如下:string activedir = @"c:\mydir";stri...
• 创建目录和文件
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);

(2)通过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);
            }

 

上一篇:

下一篇: