【解決方法】C# 時刻/日制御用のファイルをコピーしたい


after checking for folders that have changed "including their content" in the last 24 hours, if there are any changes, how do I copy them from one source folder to another destination folder? the code is as below but I couldn't add 24 hours :( thank you very much in advance

私が試したこと:

static void Main(string[] args)
{
    const string Src_FOLDER = @"C:\1";
    const string Dest_FOLDER = @"C:\2";
    string[] originalFiles = Directory.GetFiles(Src_FOLDER, "*", SearchOption.AllDirectories);

    Array.ForEach(originalFiles, (originalFileLocation) =>
    {
        FileInfo originalFile = new FileInfo(originalFileLocation);
        FileInfo destFile = new FileInfo(originalFileLocation.Replace(Src_FOLDER, Dest_FOLDER));

        if (destFile.Exists)
        {
            if (originalFile.Length > destFile.Length)
            {
                originalFile.CopyTo(destFile.FullName, true);
            }
        }
        else
        {
            Directory.CreateDirectory(destFile.DirectoryName);
            originalFile.CopyTo(destFile.FullName, false);
        }
    });
}

解決策 1

使用したい ファイルウォッチャー[^] クラス。

例については、次の Google 検索をご覧ください。 ファイルウォッチャーの c# の例[^]

アップデート

あなたの質問は [how to] 「過去 24 時間に「内容を含めて」変更されたフォルダーを確認します。」

監視したいディレクトリを「監視」できます。 それが ファイルウォッチャー[^] クラスはそうします。 その後、変更に合わせて移動できます。

または、ディレクトリにあるファイルをチェック時のタイムスタンプとともに記録し、24 時間後にプロセスを繰り返して比較することもできます。 次に、「あるソースフォルダーから別の宛先フォルダーにコピーする」必要があるファイルがわかります。

したがって、2 つの選択肢があります。
1. 変更を監視してコピーする (FileWatcher)。 また
2.記録、比較、移動。

実装はお任せします。

コメント

タイトルとURLをコピーしました