关于C#实现文件重命名
C#有没有什么方法不通过File.Move()方法给文件进行重命名,一就是说再不移动文件的情况下重命名。...
C#有没有什么方法不通过File.Move()方法给文件进行重命名,一就是说再不移动文件的情况下重命名。
展开
2013-06-22
展开全部
曲线方式,运行DOS命令。
public static string Execute(string dosCommand, int outtime)
{
string output = "";
if (dosCommand != null && dosCommand != "")
{
Process process = new Process();//创建进程对象
ProcessStartInfo startinfo = new ProcessStartInfo();//创建进程时使用的一组值,如下面的属性
startinfo.FileName = "cmd.exe";//设定需要执行的命令程序
//以下是隐藏cmd窗口的方法
startinfo.Arguments = "/k" + dosCommand;//设定参数,要输入到命令程序的字符,其中"/c"表示执行完命令后马上退出
startinfo.UseShellExecute = false;//不使用系统外壳程序启动
startinfo.RedirectStandardInput = false;//不重定向输入
startinfo.RedirectStandardOutput = true;//重定向输出,而不是默认的显示在dos控制台上
startinfo.CreateNoWindow = true;//不创建窗口
process.StartInfo = startinfo;
try
{
if (process.Start())//开始进程
{
if (outtime == 0)
{ process.WaitForExit(); }
else
{ process.WaitForExit(outtime); }
output = process.StandardOutput.ReadToEnd();//读取进程的输出
}
}
catch
{
}
finally
{
if (process != null)
{ process.Close(); }
}
}
return output;
}
private void button1_Click(object sender, EventArgs e)
{
Execute(@"ren d:\1.txt 2.txt", 0);
}
public static string Execute(string dosCommand, int outtime)
{
string output = "";
if (dosCommand != null && dosCommand != "")
{
Process process = new Process();//创建进程对象
ProcessStartInfo startinfo = new ProcessStartInfo();//创建进程时使用的一组值,如下面的属性
startinfo.FileName = "cmd.exe";//设定需要执行的命令程序
//以下是隐藏cmd窗口的方法
startinfo.Arguments = "/k" + dosCommand;//设定参数,要输入到命令程序的字符,其中"/c"表示执行完命令后马上退出
startinfo.UseShellExecute = false;//不使用系统外壳程序启动
startinfo.RedirectStandardInput = false;//不重定向输入
startinfo.RedirectStandardOutput = true;//重定向输出,而不是默认的显示在dos控制台上
startinfo.CreateNoWindow = true;//不创建窗口
process.StartInfo = startinfo;
try
{
if (process.Start())//开始进程
{
if (outtime == 0)
{ process.WaitForExit(); }
else
{ process.WaitForExit(outtime); }
output = process.StandardOutput.ReadToEnd();//读取进程的输出
}
}
catch
{
}
finally
{
if (process != null)
{ process.Close(); }
}
}
return output;
}
private void button1_Click(object sender, EventArgs e)
{
Execute(@"ren d:\1.txt 2.txt", 0);
}
推荐于2017-11-25
展开全部
在网上搜索了一下,都说要使用File.Move()方法进行文件重命名操作。貌似这个方法并不麻烦,因为在逻辑磁盘上使用这个指令貌似并不真的移动文件,仅仅是改变指向而已。 但是不知道为什么不提供重命名的功能,还有一种可能就是:微软设计的底层就是将这个命令的特定用法转化为了重命名功能。(纯属个人推断)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-22
展开全部
/// <summary>
/// 将文件重命名
/// </summary> public static string getNewFileName(string filename)
{
string newFileName = string.Empty;
string newFilePath = string.Empty;
string lname = string.Empty;
string rname = string.Empty;
Random rd = new Random();
int ssss = rd.Next(1000, 9999);
lname = filename.Substring(0, filename.LastIndexOf('.'));
rname = filename.Substring(filename.LastIndexOf('.'));
newFileName = lname + "_" + ssss.ToString() + DateTime.Now.ToString("yyyyMMddHHmmssffff") + rname;
return newFileName;
}
/// 将文件重命名
/// </summary> public static string getNewFileName(string filename)
{
string newFileName = string.Empty;
string newFilePath = string.Empty;
string lname = string.Empty;
string rname = string.Empty;
Random rd = new Random();
int ssss = rd.Next(1000, 9999);
lname = filename.Substring(0, filename.LastIndexOf('.'));
rname = filename.Substring(filename.LastIndexOf('.'));
newFileName = lname + "_" + ssss.ToString() + DateTime.Now.ToString("yyyyMMddHHmmssffff") + rname;
return newFileName;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询