C# 在程序启动时从文本文件加载

C# 在程序启动时从文本文件加载,c#,winforms,visual-studio-2012,C#,Winforms,Visual Studio 2012,抱歉,可能是努比什问题,刚开始学习c#,找不到任何有效的方法 我正在用c#制作一个文本编辑器,到目前为止,它可以通过对话框从程序内部打开和保存文本文件,但是如何让它从我在windows资源管理器中打开的文件中加载文本,在编辑器外部,使用编辑器 基本上,我已经可以从编辑器中打开的文本文件中读取内容,但是如何才能使它在打开文本文件(并将打开文本文件的默认程序设置为我的编辑器)时能够读取 我看到了一些关于以某种方式获取文件名并将其作为参数传递的信息,如果这有帮助的话。如果我理解正确,您想将文件名/名称

抱歉,可能是努比什问题,刚开始学习c#,找不到任何有效的方法

我正在用c#制作一个文本编辑器,到目前为止,它可以通过对话框从程序内部打开和保存文本文件,但是如何让它从我在windows资源管理器中打开的文件中加载文本,在编辑器外部,使用编辑器

基本上,我已经可以从编辑器中打开的文本文件中读取内容,但是如何才能使它在打开文本文件(并将打开文本文件的默认程序设置为我的编辑器)时能够读取


我看到了一些关于以某种方式获取文件名并将其作为参数传递的信息,如果这有帮助的话。

如果我理解正确,您想将文件名/名称作为命令行参数传递吗

如果查看启动程序的
Main
,可以看到它将参数存储在
string[]
(字符串数组)中,因此如果传递参数,只需检查程序内部的
args[]
,即可获得发送的参数。如果你需要更多的帮助,请多问


已更新

根据您的请求,如果您从windows资源管理器打开一个文件,它会将该文件的路径发送到Main方法。假设您右键单击一个文件并选择使用文本编辑器打开它。您必须像我下面所做的那样使用路径,并读取文件的内容。然后你可以对内容做任何你想做的事情

class测试类{
静态void Main(字符串[]参数){
//现在字符串数组中有了所有参数
如果(args.Length!=0){
字符串pathToTextfile=args[0];
}
StreamReader文本文件=新的StreamReader(pathToTextfile);
string fileContents=textFile.ReadToEnd();
textFile.Close();
}
}

如果我理解正确,是否将文件名/名称作为命令行参数传递

如果查看启动程序的
Main
,可以看到它将参数存储在
string[]
(字符串数组)中,因此如果传递参数,只需检查程序内部的
args[]
,即可获得发送的参数。如果你需要更多的帮助,请多问


已更新

根据您的请求,如果您从windows资源管理器打开一个文件,它会将该文件的路径发送到Main方法。假设您右键单击一个文件并选择使用文本编辑器打开它。您必须像我下面所做的那样使用路径,并读取文件的内容。然后你可以对内容做任何你想做的事情

class测试类{
静态void Main(字符串[]参数){
//现在字符串数组中有了所有参数
如果(args.Length!=0){
字符串pathToTextfile=args[0];
}
StreamReader文本文件=新的StreamReader(pathToTextfile);
string fileContents=textFile.ReadToEnd();
textFile.Close();
}
}

您可以使用
OpenFileDialog
类来选择要在程序中显示的文件。

您可以使用
OpenFileDialog
类来选择要在程序中显示的文件。

因此,您有一个用C#编码的文本编辑器,并且您希望能够通过双击Windows资源管理器中的文件来打开文本文件。如果是,基本上有两个步骤: 1.编辑器程序必须接受一个参数作为文件名。卡尔已经举了个例子。
2.您需要将*.txt文件与文本编辑器相关联。这可以通过编辑Windows注册表来完成。请选中

,这样您就有了一个用C#编码的文本编辑器,并且您希望能够通过双击Windows资源管理器中的文件来打开文本文件。如果是,基本上有两个步骤: 1.编辑器程序必须接受一个参数作为文件名。卡尔已经举了个例子。
2.您需要将*.txt文件与文本编辑器相关联。这可以通过编辑Windows注册表来完成。请检查有一个主要方法。调用该方法以启动应用程序。它传递了所有命令行/shell参数(如果有)。检查是否有,如果有,请将其视为文件名,并尝试像打开其他文件一样打开它。@David:没有。问题相当清楚。这只是因为Serdnad不知道如何实现他想要的(需要朝着正确的方向推进)。您是在询问如何创建文件关联(因此,当在资源管理器中单击文件时,它将启动您的应用程序),还是询问如何在您的应用程序中处理文件关联,还是这两个问题?有一个主要的方法。调用该方法以启动应用程序。它传递了所有命令行/shell参数(如果有)。检查是否有,如果有,请将其视为文件名,并尝试像打开其他文件一样打开它。@David:没有。问题相当清楚。这只是因为Serdnad不知道如何实现他想要的(需要朝着正确的方向推进)。你是在问如何创建文件关联(当你在Explorer中单击文件时,它将启动你的应用程序),还是在你的应用程序中如何处理文件关联,或者这两个问题?是的,这看起来是正确的,我尝试了类似的东西,但出现了一个错误,但我不再得到它了。我现在应该工作了,你只需要添加你想要做的内容!好的,谢谢,我想我明白了,我现在正在实施它,并且会让你知道它是否有效。非常感谢,感谢所有帮助过我的人。我保证下一个问题会做得更好:)。呃,下一个问题,我一直在努力让它发挥作用,但我做不到,而且我很确定我做的每件事都是对的。我的新问题是,
args[0]
始终是编辑器的路径,而不是文件的路径。你认为你能帮忙吗?哦,还有,我最终得到它的方式是使用
string[]args=Environment.GetCommandLineArgs()在f中