最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
c#文件复制,移动,新建
时间:2022-06-25 08:25:53 编辑:袖梨 来源:一聚教程网
下面这段代码可以对C#中对文件的新建 移动 删除 复制操作等有需要的朋友可以参考一下。
///
/// 判断文件或文件夹是否存在
///
/// 指定文件及其路径
/// 判断方式
///返回布尔值 文件夹是否存在 true 存在,false 不存在
public static bool IsExist(string file, FsoMethod method)
{
if (method == FsoMethod.File)
{
return File.Exists(file);
}
else if (method == FsoMethod.Folder)
{
return Directory.Exists(file);
}
else
{
return false;
}
}#region "新建"
///
/// 新建文件或文件夹
///
/// 文件或文件夹及其路径
/// 新建方式
public static void Create(string file, FsoMethod method)
{
try
{
if (method == FsoMethod.File)
{
WriteFile(file, string.Empty);
}
else if (method == FsoMethod.Folder)
{
Directory.CreateDirectory(file);
}
}
catch
{
throw new UnauthorizedAccessException("没有权限!");
}
}#endregion
#region "复制"
#region "复制文件"
///
/// 复制文件,如果目标文件已经存在则覆盖掉
///
/// 源文件
/// 目标文件
public static void CopyFile(string oldFile, string newFile)
{
File.Copy(oldFile, newFile, true);
}///
/// 以流的形式复制拷贝文件
///
/// 源文件
/// 目标文件
///是否复制成功 true 成功,false 失败
public static bool CopyFileStream(string oldPath, string newPath)
{
try
{
// 建立两个FileStream对象
FileStream fileStreamOld = new FileStream(oldPath, FileMode.Open, FileAccess.Read);
FileStream fileStreamNew = new FileStream(newPath, FileMode.Create, FileAccess.Write);//// 分别建立一个读写类
BinaryReader br = new BinaryReader(fileStreamOld);
BinaryWriter bw = new BinaryWriter(fileStreamNew);//// 将读取文件流的指针指向流的头部
br.BaseStream.Seek(0, SeekOrigin.Begin);
//// 将写入文件流的指针指向流的尾部
br.BaseStream.Seek(0, SeekOrigin.End);while (br.BaseStream.Position < br.BaseStream.Length)
{
//// 从br流中读取一个Byte并马上写入bw流
bw.Write(br.ReadByte());
}
//// 释放所有被占用的资源
br.Close();
bw.Close();
fileStreamOld.Flush();
fileStreamOld.Close();
fileStreamNew.Flush();
fileStreamNew.Close();
return true;
}
catch
{
return false;
}
}#endregion
#region "复制文件夹"
///
/// 复制文件夹中的所有内容及其子目录所有文件
///
/// 源文件夹及其路径
/// 目标文件夹及其路径
public static void CopyDirectory(string oldDir, string newDir)
{
DirectoryInfo directoryInfo = new DirectoryInfo(oldDir);
CopyDirInfo(directoryInfo, oldDir, newDir);
}#endregion
#endregion
#region "移动"
///
/// 移动文件或文件夹
///
/// 原始文件或文件夹
/// 目标文件或文件夹
/// 移动方式:1、为移动文件,2、为移动文件夹
public static void Move(string oldFile, string newFile, FsoMethod method)
{
if (method == FsoMethod.File)
{
File.Move(oldFile, newFile);
}if (method == FsoMethod.Folder)
{
Directory.Move(oldFile, newFile);
}
}#endregion
#region "删除"
///
/// 删除文件或文件夹
///
/// 文件或文件夹及其路径
/// 删除方式:1、为删除文件,2、为删除文件夹
public static void Delete(string file, FsoMethod method)
{
if (method == FsoMethod.File)
{
if (File.Exists(file))
{
File.Delete(file);
}
}if (method == FsoMethod.Folder)
{
if (Directory.Exists(file))
{
Directory.Delete(file, true); // 删除该目录下的所有文件以及子目录
}
}
}#endregion
相关文章
- 王者荣耀侦探能力大测试攻略 王者荣耀侦探能力大测试怎么过 11-22
- 无期迷途主线前瞻兑换码是什么 11-22
- 原神欧洛伦怎么培养 11-22
- 炉石传说网易云音乐联动怎么玩 11-22
- 永劫无间手游确幸转盘怎么样 11-22
- 无期迷途主线前瞻兑换码是什么 无期迷途主线前瞻直播兑换码介绍 11-22