我有一些照片在一个文件夹里。图像可以很容易地从第一个文件夹转移到第二个文件夹。到目前为止,一切似乎都是ok的,但是如何将一个图像从第一个目录传递到第二个目录,这与已经存在于第二个文件夹中的图像是相同的呢?简单来说:如何更新或覆盖第二个文件夹中的文件?非常感谢您的帮助!
string pathName = @"C:\Users\Desktop\Images\Second\";
foreach (var file in Directory.EnumerateFiles(@"C:\Users\Desktop\Images\"))
{
if (!Directory.Exists(pathName))
{
Directory.CreateDirectory(pathName);
}
string destFile = Path.Combine(pathName, Path.GetFileName(file));
if (!File.Exists(destFile))
{
File.Move(file, destFile);
}
}
更新:
我忘了,Move方法有第三个参数bool
overwrite。你可以用它
File.Move(file, destFile, true);
您将在这里找到更多信息
对于此任务,可以使用file.openread
、file.openwrite
和stream.copyto
方法
if (!File.Exists(destFile))
{
File.Move(file, destFile);
}
else
{
using (var sourceStream = File.OpenRead(file))
using (var desStream = File.OpenWrite(destFile))
sourceStream.CopyTo(desStream);
}
move方法可以具有要重写第三个参数boolean
Move(String, String, Boolean)
将指定的文件移动到新位置,提供指定新文件名和覆盖目标文件(如果目标文件已存在)的选项。检查https://docs.microsoft.com/en-us/dotnet/api/system.io.file.move?view=net-5.0
或者,如果文件存在于destination中,则可以使用File.replace()保存已删除文件的备份。
public static void Replace (string sourceFileName, string destinationFileName, string? destinationBackupFileName);
会是这样的
string pathName = @"C:\Users\Desktop\Images\Second\";
foreach (var file in Directory.EnumerateFiles(@"C:\Users\Desktop\Images\"))
{
if (!Directory.Exists(pathName))
{
Directory.CreateDirectory(pathName);
}
string destFile = Path.Combine(pathName, Path.GetFileName(file));
string backupFile = 'Some place to backup the deleted image'.
if (!File.Exists(destFile))
{
File.Move(file, destFile);
}
else
{
File.Replace(file, destFile, backupFile);
}
}
可以查看https://docs.microsoft.com/en-us/dotnet/api/system.io.file.replace?view=net-5.0查看文档
问题内容: 因此,我一直在寻找一个高低的答案,显然找不到令人满意的答案。 问题是我想在JAR内更新JAR(或与此相关的任何文件),但是所说的文件在文件夹结构内,我想避免在JAR之外重现,以便我可以对其进行更新。 例: 因此,如果要使用 jar 命令更新此文件,则必须先在JAR外部创建相同的文件夹结构,然后再执行 但是,我想避免创建此文件夹结构,因为对于某些文件而言,它可能很深,而且因为我可能需要在
问题内容: 以下代码将列出目录中的所有文件 尽管这是非常简单的代码,但可以完成工作。 我现在正在寻找一种仅列出结尾处带有.xml(或.XML)的文件的方法,该怎么办? 问题答案: 使用substr和strrpos查看扩展的简单方法
在我的MongoDB中,我有文档,如下所示。如何更新内部文档结构中的文档:<code>〔{1},〔{2}〕,〔{3}〕、〔{4}〕</code>。 例如:子子文档中的子文档具有和以及 和
查找特定记录并更新
我从特定目录下的Stackoverflow使用通配符子域获取源代码 原始代码: 它可以正常工作,但上面的代码指向根目录。我希望所有子域都指向我的“公文包”目录中的目录,所以我尝试修改自己的代码 修改后(添加"/投资组合"): 但它给了我“500-内部服务器错误”。。。为什么?有人能纠正我的密码吗? 对我的英语表示感谢和歉意。
我有一个简单的问题:我使用迭代一个大的、深嵌套的目录结构,如下所示: 我的目标是添加特定目录下的所有文件,我知道该目录最多是下的级别。 语言级别为Java8。