2015-02-10 60 views
0

我的程序保存用户输入到一个txt文件上它的当前位置添加程序到Windows启动

TextWriter ts = new StreamWriter("url.txt"); 
      ts.WriteLine(textBox2.Text.ToString()); 
      ts.Close(); 

它读取的是,当应用程序启动

 if (File.Exists("url.txt")) 
     { 
      TextReader tr = new StreamReader("url.txt"); 
      readUrl = tr.ReadLine().ToString(); 
      textBox2.Text = readUrl; 



      tr.Close(); 
     } 

我该软件添加到Windows启动这些代码

using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true)) 
      { 
       key.SetValue("House Party Protocol", "\"" + Application.ExecutablePath + "\""); 
      } 

我用ClickOnce发布它,并将它安装到我的电脑。它从Windows启动时开始bu不读取txt文件。当我手动打开它时,它可以工作。我觉得ClickOnce安装路径和Windows启动路径是不同的。我应该如何更改我的启动代码以避免发生这种情况

+0

尝试给它的完整路径 – user1274820 2015-02-10 19:42:56

回答

1

您可以尝试使用特定的目录。例如,可以将url.txt文件保存到LocalApplicationData(当前非漫游用户使用的特定于应用程序的数据的目录)。

static void Main(string[] args) 
    { 
     string inputText = string.Empty; 

     //string directory = Environment.CurrentDirectory; 
     string directory = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 
     string path = Path.Combine(directory, "url.txt"); 

     if (File.Exists(path)) 
     { 
      TextReader tr = new StreamReader(path); 
      string readUrl = tr.ReadLine().ToString(); 
      inputText = readUrl; 

      tr.Close(); 
     } 

     string text = "abc"; 
     TextWriter ts = new StreamWriter(path); 
     ts.WriteLine(text); 
     ts.Close(); 
    } 

如果你真的想使用该应用程序的运行,那么该目录,你可以尝试使用Environment.CurrentDirectory(注释掉在上面的示例代码)。这可能会给你与以前相同的错误(使用相对路径时),但它可以通过显示它尝试使用的目录来帮助您解决问题。

这里的其他特殊文件夹列表: Environment.SpecialFolder

相关问题