я программно открываю файл слова для поиска и выделения ключевого слова. моя рутина работает нормально. проблема в том, что когда я открываю файл программно, появляется диалоговое окно с просьбой открыть файл в режиме только для чтения. диалоговое окно выглядит так:
на самом деле я не хочу открывать файл в режиме только для чтения, потому что люди могут открывать и любят изменять и сохранять. поэтому подскажите, что я могу сделать, чтобы не открывать файл в режиме только для чтения.
вот мой полный код. просто посмотрите и скажите мне, что не так в моем коде, или расскажите мне какой-нибудь трюк, в результате я могу открыть файл не в режиме только для чтения. вот мой код.
private void button1_Click(object sender, EventArgs e)
{
object fileName = "";
string filePath = "";
string strSaveasPath = "";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
fileName = openFileDialog1.FileName;
//strSaveasPath = Path.GetDirectoryName(path.ToString());
}
//fileName = "Z:\\C0000000003.doc";
List<string> _list = new List<string>();
_list.Add("tridip");
_list.Add("arijit");
//object fileName = "D:\\CVArchievePath\\C0000000001.doc";
object textToFind = "test";
object readOnly = false;
Word.Application word = new Word.Application();
Word.Document doc = new Word.Document();
object missing = Type.Missing;
try
{
doc = word.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 missing,
ref missing, ref missing, ref missing,
ref missing);
doc.Activate();
object matchPhrase = false;
object matchCase = false;
object matchPrefix = false;
object matchSuffix = false;
object matchWholeWord = false;
object matchWildcards = false;
object matchSoundsLike = false;
object matchAllWordForms = false;
object matchByte = false;
object ignoreSpace = false;
object ignorePunct = false;
object highlightedColor = Word.WdColor.wdColorGreen;
object textColor = Word.WdColor.wdColorLightOrange;
object missingp = false;
Word.Range range = doc.Range();
foreach (string line in _list)
{
textToFind = line;
bool highlighted = range.Find.HitHighlight(ref textToFind,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing);
}
System.Diagnostics.Process.Start(fileName.ToString());
}
catch (Exception ex)
{
Console.WriteLine("Error : " + ex.Message);
//Console.ReadKey(true);
}
finally
{
//doc.Close(missing, missing, missing);
if(doc!=null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
if (word != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(word);
word = null;
doc = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
}