我在做什麼錯了?訪問被拒絕!?我無法從C驅動器上的安裝文件夾中打開文件
我有一個讀取/複製/寫入過程,用於訪問隨軟件一起安裝的文件夾。
測試版本時,這很好用,但一旦解決方案被創建,它就完全停止工作。我究竟做錯了什麼?
(代碼擊穿) 我基本上是訪問一個名爲CTW.pdf 接下來,我們創建一個臨時複製該軟件填補和分層 在完成PDF,該軟件保存新副本到同一目錄與新的名字(我簡單地添加到文件名的日期和時間)
下面的代碼:
if (screenLock.Text == "")
{
}
else
{
string fileNameExisting = @"C:\Program Files (x86)\Compliance Pro 2\CTW.pdf";
string fileNameNew = @"C:\Program Files (x86)\Compliance Pro 2" + " CTW.pdf" + DateTime.Now.ToString("M/d/yyyy") + DateTime.Now.ToString("hh:mm:ss");
using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// https://www.codeproject.com/Tips/679606/Filling-PDF-Form-using-iText-PDF-Library
// Open existing PDF
var pdfReader = new PdfReader(existingFileStream);
// PdfStamper, which will create
var stamper = new PdfStamper(pdfReader, newFileStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
form.SetField(fieldKey, "");
}
stamper.AcroFields.SetField("OSJNonOSJ", "TFSN");
stamper.AcroFields.SetField("Branch", "9DCF");
stamper.AcroFields.SetField("User Name Last First", "Joe" + "Pearson");
stamper.AcroFields.SetField("Tested by Last First", emailTo.Text);
stamper.AcroFields.SetField("Date Tested", DateTime.Now.ToString("M/d/yyyy"));
stamper.AcroFields.SetField("COMMENTS", notes.Text);
stamper.AcroFields.SetField("WDE-Yes", user.Text + "5");
}
}
注:我很努力,以確保我的軟件不需要任何管理權限來完成它的功能,我真的想在這裏避免這種情況以及。
我已經添加了圖片以供參考 –
通常C:\驅動器確實需要管理員權限才能寫入。這可能是你爲什麼得到'AccessDenied'錯誤? – Sach
是否有更清潔的解決方案?我只是想拉這個PDF,寫下來,並保存在某個地方(我不在乎我保存的位置,它甚至可以由用戶定義) –