我只想知道,是否有可能在文本文件中设置光标的位置,我使用以下代码打开文本文件:
if (File.Exists(file))
{
Process.Start(file);//file is a string that contain the file path
}
如您所见,打开的文件是另一个进程,如果有另一种使用C#打开文件的方法,则可以为我提供设置文件内光标位置的可能性。
例如:
在第20行或200字符处打开文件。我想打开具有.java扩展名的文件,所以我想使用默认程序来处理我的文件。
发布于 2016-04-13 07:23:36
虽然使用泛型文本编辑器是不可能的,在您的系统上的默认文本编辑器中也可能是不可能的,但是对于许多其他文本编辑器来说,这是可能的。例如,您可以安装notepad++并使用对您可用的命令行开关:
notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage]
[-nLineNumber] [-cColumnNumber] [-xPos] [-yPos]
[-nosession] [-notabbar] [-ro] [-systemtray] [-alwaysOnTop]
[-Llanguege code] [-r]
然后,您可以使用来自this post的代码跳转到文件中的特定位置。
编辑:,如果您需要到达一个特定的字符位置,您可以读取该文件并确定您要查找的字符的行号和列号。不要忘记包括换行符(可能有1或2)当你做这个处理!
发布于 2016-04-13 07:13:34
不不可能。当您使用Process.Start
“运行”外部文件时,您实际上是在将控制权传递给操作系统,并说:“请根据其文件扩展名在其默认应用程序中打开该文件。”当然,结果取决于您配置了哪些应用程序来打开您的文件类型。
在大多数情况下,一个文本文件会在Notepad.exe中打开,但是如果您安装了另一个文本编辑器,就像我(UltraEdit)一样,它很可能会在其中打开。无论哪种方式,操作系统都不能保证它将运行任何应用程序。除此之外,您无法控制游标在目标应用程序中的位置,即使存在游标。例如,您的操作系统可能会被配置成在Windows Media Player中以任何方式打开txt文件。没有“光标位置”的概念..。
https://stackoverflow.com/questions/36602615
复制相似问题