程序启动时从文本文件加载

问题描述 投票:1回答:3

很抱歉这个问题可能很棘手,刚开始学习C#,却找不到有效的方法。

我正在用C#编写文本编辑器,到目前为止,它可以使用对话框从程序内部打开和保存文本文件,但是如何使它从我在Windows资源管理器中打开的文件中加载文本编辑,并带有编辑]

[基本上,我已经可以从在编辑器中打开的文本文件中读取内容,但是如果我打开一个文本文件(并将打开文本文件的默认程序设置为我的编辑器),那么我将如何读取它?它吗?

我看过有关以某种方式获取文件名并将其作为参数传递的内容,如果有帮助的话。

c# winforms visual-studio-2012
3个回答
8
投票

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

[如果您查看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();

    }
}

1
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.