1

很抱歉这个可能很愚蠢的问题,刚开始学习 c#,但找不到任何有用的东西。

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

基本上,我已经可以从编辑器中打开的文本文件中读取,但是我怎样才能做到这一点,以便如果我打开一个文本文件(并将用于打开文本文件的默认程序设置为我的编辑器),它会读取它?

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

4

3 回答 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();

    }
}
于 2013-06-11T05:50:13.890 回答
1

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

于 2013-06-11T06:04:07.227 回答
0

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

于 2013-06-11T05:53:04.103 回答