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);
}
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);
}