正在复制的字符在 c# windows 形式的文本文件中成倍增加

Characters being copied are getting multiplied on the text file on c# windows form

我正在用 C# 创建一个简单的剪贴板系统,每次复制字符或单词时,它们都会在文本文件中成倍增加,如下图所示。

这是我的代码

        string path = @"C:\Users\" + Environment.UserName + "\Documents\clipboard.txt";

        if (!File.Exists(path))
        {     
            using (StreamWriter sw = File.CreateText(path)) ;     
            if(File.Exists(path))
            {
                while (true)
                {
                    var text = Clipboard.GetText();
                    File.AppendAllText(path, text);
                    Thread.Sleep(2500);
                }
            }
        }

这是一个非常粗略的修复,我相信还有比这更有效的方法,但目前这应该可行。

您会将最后复制的文本存储为 lastText 并将其与 text 中的当前文本进行比较,如果它们匹配则您的剪贴板没有更改,如果它们不匹配那么您的剪贴板上有新文本,应该将其附加到文件中。

string path = @"C:\Users\" + Environment.UserName + "\Documents\clipboard.txt";
string lastText = "";

if (!File.Exists(path))
        {     
            using (StreamWriter sw = File.CreateText(path)) ;     
            if(File.Exists(path))
            {
                while (true)
                {
                    var text = Clipboard.GetText();
                    if(lastText != text)
                    {
                        File.AppendAllText(path, text);
                        lastText = text;
                    }              
                    Thread.Sleep(2500);
                }
            }
        }