using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
public class MaintainFile
{
private int IntModify()//主要判断用户要操作的类型
{
int intType = 0;
//string s = "\\\\\\";
Console.WriteLine("请指定操作种类:[1]新建 [2]删除 [3]复制 [4]移动");//对应FileInfo类的相关实例方法
while (intType < 1 || intType > 4)//判断你输入的字符是否是1、2、3、4
{
intType = int.Parse(Console.ReadLine());
if (intType < 1 || intType > 4)//如果不是的话
Console.WriteLine("输入数字不正确...");
}
return intType;
}
public static void Main()
{
int intMaintain;//对目录或者文件操作的类型
string strDir;//目录名称
string strFile;//文件名称
string strResult = "";
MaintainFile myMaintain = new MaintainFile();
intMaintain = myMaintain.IntModify();//检测输入的选项数字是否有效
Console.WriteLine("输入目录名称: ");
strDir = Console.ReadLine();
Console.WriteLine("输入文件名称: ");
strFile = Console.ReadLine();
switch (intMaintain)
{
case 1://1类型就是新建文件
myMaintain.CreateNewFile(strDir, strFile);
strResult = "文件新建完成";
break;
case 2:
myMaintain.DeleteFile(strDir, strFile);
strResult = "文件删除完成";
break;
case 3:
string strFileCopy;
Console.WriteLine("输入复制文件名称: ");
strFileCopy = Console.ReadLine();
myMaintain.CopyFile(strDir, strFile, strFileCopy);
strResult = "文件复制完成";
break;
case 4:
string strFileMove;
Console.WriteLine("输入移动文件名称: ");
strFileMove = Console.ReadLine();
myMaintain.MoveFile(strDir, strFile, strFileMove);
strResult = "文件移动完成";
break;
}
Console.WriteLine(strResult);
Console.Read();
}
private void CreateNewFile(string strDir, string strFilename)
{ //FileInfo的实例方法具备对文件的操作:打开、创建、复制、移动和删除
//File的方法静态具备对文件的操作:打开、创建、复制、移动和删除
//FileInfo类包含File类所有的功能,并且更多
try//尝试
{
//Path 路径
//目录+你要创建对象的名称 =路径
// File.Create(“路径名”);
FileInfo myFileInfo = new FileInfo(strDir + strFilename);//创建当前文件对象
//比如创建一个txt文件
//myFileInfo.Create().Close();
FileStream myFileStream = myFileInfo.Create();//通过当前文件对象创建对应文件流
//不对myFileStream写入任何内容
myFileStream.Close();//关闭产生的当前文件流,自动产生文件
}
catch
{
Console.WriteLine("错误的文件格式!!");
}
}
private void CopyFile(string strDir, string strFilename1, string strFileName2)
{
try
{ //创建当前文件对象
FileInfo myFileInfo = new FileInfo(strDir + strFilename1);
//当前文件对象CopyTo
myFileInfo.CopyTo(strDir + strFileName2, true);//移动到指定的路径 路径=目录字符串+文件名
}
catch
{
Console.WriteLine("文件复制错误!!");
}
}
private void DeleteFile(string strDir, string strFilename)
{
try
{
bool blnFileExist;
blnFileExist = File.Exists(strDir + strFilename);
if (!blnFileExist)
{
Console.WriteLine("文件不存在");
return;
}
//创建当前文件对象
FileInfo myFileInfo = new FileInfo(strDir + strFilename);
//当前文件对象Delete
myFileInfo.Delete();//跟据初始化的路径删除文件
}
catch
{
Console.WriteLine("删除文件错误!!");
}
}
private void MoveFile(string strDir, string strFilename1, string strFilename2)
{
try
{ //创建当前被移动的文件对象myFileInfo
FileInfo myFileInfo = new FileInfo(strDir + strFilename1);
bool blnFileExist;
blnFileExist = myFileInfo.Exists;//判断myFileInfo这个文件是否存在
if (!blnFileExist)
{
Console.WriteLine("文件不存在");
return;
}
//当前被移动的文件对象myFileInfo之MoveTo方法
myFileInfo.MoveTo(strDir + strFilename2);//移动到指定的路径
}
catch
{
Console.WriteLine("文件移动错误!!");
}
}
}
//文件创建的是流,关闭即产生。
//文件的移动MoveTo、删除Delete、复制CopyTo,是自身的方法。