Reputation:
I'm rather new, but I want to be able to transfer my application to different computers. Obviously the file path will be different if I transfer it to another computer. In this application it opens up a template to type into. I tried shortening the path to a multiple set of things, but instead it tries to open the file from windows\system32\ rather than the folder it's sitting in. Any ideas of what I should be using for this? A simple search gave me a variety of things like GetDirectory, but I am not entirely sure where to place it in my already written code, Anyplace I try I get a handful of errors.
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();
}
}
}
Upvotes: 1
Views: 55
Reputation: 65534
Try using Application.StartupPath
object fileName = Application.StartupPath + "release\\MLA1.dotx";
In Debug Mode you might like to do this to make sure its looking in the root folder (that the exe would be in at RunTime):
object fileName = Application.StartupPath.Replace("bin\Debug", String.Empty) + "release\\MLA1.dotx";
Upvotes: 1