C#如何在指定目录下创建文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何在指定目录下创建文件相关的知识,希望对你有一定的参考价值。
比如在相对路径下创建一个ini类型的文件user.ini
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);
参考技术A using System.Runtime.InteropServices;
先引用API函数:
public class API
[DllImport("kernel32")]
private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath);
public bool IniWriteValue(string section, string key, string val, string filePath)
return WritePrivateProfileString(section, key, val, filePath);
比如在Button单击时间中使用:(这里是在应用程序根目录创建)
string filepath = Application.StartupPath + "\\user.ini";
API INI = new API();
INI.IniWriteValue("节点", "关键字", "关键字的内容", filepath);本回答被提问者采纳 参考技术B path文件路径(如:D://新建文件夹(1))
string loadpath=path+"项目文件";
DirectoryInfo dir=new DirectoryInfo(loadpath);
dir.Create();
别忘了导入命名空间:
using System.IO;//用于调出DirectoryInfo 参考技术C static void Main()
File.Create("user.ini");
同一个文件夹下创建user.ini
话说各位同志想的好复杂····
如何在linux中使用shell脚本遍历指定目录的文件,将创建时间大于指定时间的文件,复制到指定目录下。
大于指定时间?最简单的就是直接find里面指定吧。例如,查找当前目录及其子目录所有mtime大于1天的文件:find
/path
-type
f
-mtime
+1
即可,/path
可以换成其他路径,-mtime
+1
表示时间大于1天。-1的话表示小于一天也就是1天之内的。 参考技术A #!/bin/sh
DIR=$1
TIME=$2
OTDIR=$3
TMP=`find
$1
-mtime
+$2
-print`
echo
$TMP
cp
$TMP
$OTDIR
执行时
要有3个参数指定文件的目录
大于指定的时间
复制到的目录
没写验证部分
参数顺序不要写错
以上是关于C#如何在指定目录下创建文件的主要内容,如果未能解决你的问题,请参考以下文章