我遇到了一个问题,当我向文本框/富文本框添加自定义字典时,'.dic'文件会被创建在%TEMP%目录下并且不会被删除。这在Windows 7上运行良好,但现在在Win 10上出现了上述问题。这些文件始终为零字节,并以类似于1s3iqqvw.dic的名称命名。
真正的应用程序有很多文本/富文本框,每次实例化其中一个时,在添加自定义字典时都会创建一个新的dic文件,用户不久就会在他们的temp目录中拥有数百个这样的文件。
更糟糕的是,随着越来越多的.dic文件被创建,该过程会变得越来越慢 - Windows似乎会生成一个随机的文件名,然后在创建它之前搜索目录中是否有重复的文件名,如果找到重复的文件名则一直重复此过程,直到找到唯一的文件名。当有数百个.dic文件时,这会严重降低应用程序的速度 - 我们需要手动删除.dic文件才能解决问题。
下面的代码将重新创建此问题。在Win 10上,.dic文件会被创建在%TEMP%目录下 - 而在Win 7上则不是这种情况。
真正的应用程序有很多文本/富文本框,每次实例化其中一个时,在添加自定义字典时都会创建一个新的dic文件,用户不久就会在他们的temp目录中拥有数百个这样的文件。
更糟糕的是,随着越来越多的.dic文件被创建,该过程会变得越来越慢 - Windows似乎会生成一个随机的文件名,然后在创建它之前搜索目录中是否有重复的文件名,如果找到重复的文件名则一直重复此过程,直到找到唯一的文件名。当有数百个.dic文件时,这会严重降低应用程序的速度 - 我们需要手动删除.dic文件才能解决问题。
下面的代码将重新创建此问题。在Win 10上,.dic文件会被创建在%TEMP%目录下 - 而在Win 7上则不是这种情况。
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//dict.txt must exist
this.textBox1.SpellCheck.CustomDictionaries.Add(new Uri("d:\\dict.txt", UriKind.Relative));
textBox1.Text = "Lorem ipsum dolor sit amet";
}
}
}
<Window x:Class="testapp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:u="clr-namespace:testapp"
Title="MainWindow" Height="350" Width="799"
>
<Grid>
<TextBox SpellCheck.IsEnabled="True" Height="287" Margin="6,12,0,0" Name="textBox1" VerticalAlignment="Top" HorizontalAlignment="Left" Width="759" TextWrapping="Wrap" AcceptsReturn="True"/>
</Grid>
</Window>
有没有人注意到Windows 10上的这个问题?你有解决方法吗?