PD4ML pd4ml = new PD4ML();
pd4ml.enableTableBreaks(true);
pd4ml.PageInsets = new System.Drawing.Rectangle(5, 5, 5, 5);
pd4ml.PageSize = PD4Constants.getSizeByName("LETTER");
Byte[] byteArray = Encoding.ASCII.GetBytes(content);
MemoryStream stream = new MemoryStream(byteArray);
FinalPath = FinalPath + @"\" + VersionID;
if (!Directory.Exists(FinalPath))
Directory.CreateDirectory(FinalPath);
string FileName = FinalPath +FileName+ ".pdf";
pd4ml.render(stream,new System.IO.FileStream(FileName, System.IO.FileMode.CreateNew));
stream.Flush();
stream.Close();
stream.Dispose();
//In another method I'm opening this file
File stream fs = File.Open(path, FileMode.Open, FileAccess.Read);`
私はpd4ml.render()メソッドを使用してPDFを生成しています。レンダリングメソッドを使用してこのファイルを作成すると、システムのどこかで内部的に開かれます。それで、Filestream fs = new Filestream(path、FileMode.Open、FileAccess.Read)を使用してmannualyをオープンしようとしたときです。ファイルがすでにシステム内の他のユーザーによって開かれている場合、ファイルを開くにはどうすればよいですか?
ファイルがスローされ、別のプロセスでファイルの例外が使用されています。どうしたらいいか教えてください。
私は既にコードでFileShare.ReadWrite属性とFile.OpenRead(path)を使用していますが、それは私のためには機能しません。
は、あなたが最初にそれを閉じない理由(VARのFS =新しいFileStreamを(パス、FileMode.Open、FileAccess.Read、FileShare.ReadWrite)) –
を使用してみては? – DDave
しかしそれを閉じるには私は最初にそれを開こうとしましたが、開こうとすると例外が出ます。私はFileShare.ReadWriteを使用しましたが、それは私のためには機能しません。 –