c#文件复制,移动,新建

作者:袖梨 2022-06-25

下面这段代码可以对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流中读取一个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

相关文章

精彩推荐