我只是想知道,是否有可能在文本文件中设置光标的位置,我使用以下代码打开文本文件:
if (File.Exists(file))
{
Process.Start(file);//file is a string that contain the file path
}
正如您所看到的那样,打开的文件是另一个进程,如果有另一种方法可以使用C#打开文件,这种方式可以让我在文件中设置光标位置。
在 20th行或第200个字符处打开文件。 我想打开扩展名为.java的文件,所以我想使用默认程序来处理我的文件。
答案 0 :(得分:3)
虽然使用通用文本编辑器是不可能的,并且系统上的默认文本编辑器可能无法实现,但是可以使用许多替代文本编辑器。例如,您可以安装notepad ++并使用可用的命令行开关:
notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage]
[-nLineNumber] [-cColumnNumber] [-xPos] [-yPos]
[-nosession] [-notabbar] [-ro] [-systemtray] [-alwaysOnTop]
[-Llanguege code] [-r]
然后您可以使用this post中的代码跳转到文件中的特定位置。
编辑:如果您需要到达特定字符位置,您可以阅读该文件并找出您要查找的字符所在的行号和列号。在进行此处理时,不要忘记包含换行符(可能有1个或2个)!
答案 1 :(得分:0)
不,不可能。当您使用Process.Start
“运行”外部文件时,您实际上已将控制权传递给操作系统并说“请根据其文件扩展名在其默认应用程序中打开此文件”。当然,结果取决于您配置的打开文件类型的应用程序。
在大多数情况下,文本文件会在Notepad.exe中打开,但是如果你安装了另一个文本编辑器,就像我拥有的那样(UltraEdit),它很可能会在那里打开。无论哪种方式,操作系统都不保证它将运行任何应用程序。除此之外,您无法控制光标(如果有的话)在目标应用程序中的位置。例如,可以配置您的操作系统,以便无论出于何种原因在Windows Media Player中打开txt文件。没有“光标位置”的概念......