很抱歉这个问题可能很棘手,刚开始学习C#,却找不到有效的方法。
我正在用C#编写文本编辑器,到目前为止,它可以使用对话框从程序内部打开和保存文本文件,但是如何使它从我在Windows资源管理器中打开的文件中加载文本编辑,并带有编辑]
[基本上,我已经可以从在编辑器中打开的文本文件中读取内容,但是如果我打开一个文本文件(并将打开文本文件的默认程序设置为我的编辑器),那么我将如何读取它?它吗?
我看过有关以某种方式获取文件名并将其作为参数传递的内容,如果有帮助的话。
如果我理解正确,您想将文件名作为命令行参数传递?
[如果您查看Main
,它将启动程序,您会看到它会将参数存储在string[]
(字符串数组)中,因此,如果您传递参数,则只需检查程序内部的args[]
即可您发送的参数。请询问是否需要更多帮助!
更新
根据您的请求,如果您从Windows资源管理器中打开文件,它将把文件的路径发送到Main方法。因此,假设您右键单击一个文件,然后选择使用文本编辑器将其打开。您必须像下面一样使用路径,并读取文件的内容。然后,您可以对内容进行任何操作。
class TestClass {
static void Main(string[] args) {
// Now you have all arguments in the string array
if (args.Length != 0) {
string pathToTextfile = args[0];
}
StreamReader textFile = new StreamReader(pathToTextfile);
string fileContents = textFile.ReadToEnd();
textFile.Close();
}
}
因此,您有一个用C#编码的文本编辑器,并且您希望能够通过在Windows资源管理器中双击该文件来打开文本文件。如果是这样,基本上有两个步骤: 1.您的编辑器程序必须接受一个参数作为文件名。卡尔已经举了一个例子。 2.您需要将* .txt文件与文本编辑器关联。这可以通过编辑Windows注册表来完成。请检查What registry keys are responsible for file extension association
您可以使用OpenFileDialog
类选择要在程序中显示的文件。