2016-07-21 15 views
1

Ich bin ziemlich neu, aber ich möchte in der Lage sein, meine Anwendung auf verschiedene Computer zu übertragen. Offensichtlich wird der Dateipfad anders sein, wenn ich ihn auf einen anderen Computer übertrage. In dieser Anwendung wird eine Vorlage zum Eintippen geöffnet. Ich habe versucht, den Pfad zu einer Reihe von Dingen zu verkürzen, aber stattdessen versucht es, die Datei von Windows \ system32 \ zu öffnen, anstatt den Ordner, in dem sie sich befindet. Irgendwelche Ideen, was ich dafür verwenden sollte? Eine einfache Suche gab mir eine Vielzahl von Dingen wie GetDirectory, aber ich bin nicht ganz sicher, wo ich es in meinen bereits geschriebenen Code einfügen soll. Anyplace versuche ich, eine Handvoll Fehler zu bekommen.Öffnen Sie eine Datei im Ordner der Anwendung

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Word = Microsoft.Office.Interop.Word; 

namespace WindowsFormsApplication2 
{ 


public partial class Form1 : Form 
{ 
    Word.Application objWord = new Word.Application(); 
    Word.Document objDoc; 
    public Form1() 
    { 
     InitializeComponent(); 
     objWord.Visible = true; 
     object isVisible = true; 
     object readOnly = true; 

     object Missing = System.Reflection.Missing.Value; 
     object fileName = @"release/MLA1.dotx"; 
     objDoc = objWord.Documents.Open(ref fileName, ref Missing, ref readOnly, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref isVisible, ref Missing, ref Missing, ref Missing, ref Missing); 

    } 


    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 


    private void SearchReplace() 
    { 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 



     Word.Find findObject = objWord.Selection.Find; 
     findObject.ClearFormatting(); 
     findObject.Text = "Name"; 
     findObject.Replacement.ClearFormatting(); 
     findObject.Replacement.Text = textBox1.Text; 

     object replaceAll = Word.WdReplace.wdReplaceAll; 
     object missing = System.Reflection.Missing.Value; 
     findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref replaceAll, ref missing, ref missing, ref missing, ref missing); 

     findObject.ClearFormatting(); 
     findObject.Text = "Teacher"; 
     findObject.Replacement.ClearFormatting(); 
     findObject.Replacement.Text = textBox2.Text; 


     findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref replaceAll, ref missing, ref missing, ref missing, ref missing); 

     findObject.ClearFormatting(); 
     findObject.Text = "Class"; 
     findObject.Replacement.ClearFormatting(); 
     findObject.Replacement.Text = textBox3.Text; 


     findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref replaceAll, ref missing, ref missing, ref missing, ref missing); 

     findObject.ClearFormatting(); 
     findObject.Text = "Date"; 
     findObject.Replacement.ClearFormatting(); 
     findObject.Replacement.Text = textBox4.Text; 


     findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref replaceAll, ref missing, ref missing, ref missing, ref missing); 

     findObject.ClearFormatting(); 
     findObject.Text = "Title"; 
     findObject.Replacement.ClearFormatting(); 
     findObject.Replacement.Text = textBox5.Text; 


     findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref replaceAll, ref missing, ref missing, ref missing, ref missing); 

     foreach (Word.Section wordSection in objDoc.Sections) 
     { 
      foreach (Word.HeaderFooter wordHeader in wordSection.Headers) 
      { 
       Word.Range docRange = wordHeader.Range; 

       docRange.Find.ClearFormatting(); 
       docRange.Find.Text = "Name"; 
       docRange.Find.Replacement.ClearFormatting(); 
       docRange.Find.Replacement.Text = textBox1.Text; 


       docRange.Find.Execute(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
          Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
          ref replaceAll, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
      } 
     } 

    } 

    private void label1_Click(object sender, EventArgs e) 
    { 

    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 
} 
} 
+0

Bezug: http://stackoverflow.com/questions/867485/c-sharp-getting-the-path-of-appdata –

Antwort

1

Try Application.StartupPath

object fileName = Application.StartupPath + "release\\MLA1.dotx"; 

im Debug-Modus verwenden Sie, dies zu tun vielleicht gefallen um sicherzustellen, dass seine im Stammordner suchen (das die exe in an RunTime wäre):

object fileName = Application.StartupPath.Replace("bin\Debug", String.Empty) + "release\\MLA1.dotx"; 
Verwandte Themen