gpt4 book ai didi

c# - 如果指定的文件名已经存在,则获取唯一文件名的方法 (.NET)

转载 作者:太空狗 更新时间:2023-10-30 00:46:31 25 4
gpt4 key购买 nike

如果文件名已经存在,是否有内置的 .NET 函数来获取唯一的文件名?因此,如果我尝试保存 MyDoc.doc 并且它已经存在,该文件将以名称 MyDoc(1).doc 保存,例如浏览器下载的工作方式相同.

如果不是,实现该结果的最有效方法是什么?

顺便说一下,我目前正在使用 File.Move 函数。

最佳答案

编辑:

这是我根据 Steven Sudit 的评论提出的另一个解决方案:

static void Main(string[] args)
{
CopyFile(new FileInfo(@"D:\table.txt"), new FileInfo(@"D:\blah.txt"));
}

private static void CopyFile(FileInfo source, FileInfo destination)
{
int attempt = 0;

FileInfo originalDestination = destination;

while (destination.Exists || !TryCopyTo(source, destination))
{
attempt++;
destination = new FileInfo(originalDestination.FullName.Remove(
originalDestination.FullName.Length - originalDestination.Extension.Length)
+ " (" + attempt + ")" + originalDestination.Extension);
}
}

private static bool TryCopyTo(FileInfo source, FileInfo destination)
{
try
{
source.CopyTo(destination.FullName);
return true;
}
catch
{
return false;
}
}

关于c# - 如果指定的文件名已经存在,则获取唯一文件名的方法 (.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3093008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com