무엇이 잘못 되었나요?액세스가 거부되었습니다!? 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를 가져 와서 덮어 쓰고 다른 곳에 저장하기를 원합니다. (저장 위치는 상관 없습니다. 사용자 정의도 가능합니다) –