나는 다소 새롭지 만 내 응용 프로그램을 다른 컴퓨터로 전송할 수 있기를 원합니다. 다른 컴퓨터로 전송하면 파일 경로가 달라집니다. 이 응용 프로그램에서는 입력 할 템플릿이 열립니다. 여러 항목으로 경로를 줄이려고했지만 대신에 폴더가 아닌 windows \ system32 \에서 파일을 열려고합니다.이 작업을 위해 무엇을 사용해야하는지에 대한 아이디어가 있습니까? 간단한 검색을 통해 GetDirectory와 같은 다양한 정보를 얻을 수 있었지만 이미 작성된 코드에서 어디에 배치해야하는지 완전히 모르겠습니다. 시도 할 때마다 몇 가지 오류가 발생합니다.
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();
}
}
}
Application.StartupPath를 사용해보십시오.
object fileName = Application.StartupPath + "release\\MLA1.dotx";
디버그 모드에서 루트 폴더 (exe가 런타임에 있음)에서 찾고 있는지 확인하기 위해 이렇게 할 수 있습니다.
object fileName = Application.StartupPath.Replace("bin\Debug", String.Empty) + "release\\MLA1.dotx";
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다