Я создаю приложение, которое читает файл .txt
со списком файлов для копирования в разные места и перезаписи файлов, если они уже существуют, одно местоположение:
C:\Program Files (x86)\Common Files\System\ado\
При этом я получаю следующую ошибку:
System.UnauthorizedAccessException: 'Access to the path 'C:\Program Files (x86)\Common Files\System\ado\msado27.tlb' is denied.
Я запускаю свое приложение в качестве администратора и обновил файл манифеста приложений, чтобы вызвать его как Администратор пользователя. Однако я не уверен, почему я все еще получаю эту ошибку, даже работая в качестве администратора?
Чтобы скопировать файлы, которые я использую. Net операции с файлами:
File.Copy(sourceFile, destFile, true);
Полный раздел кода, который касается копирования файла для вашей справки:
void readFilesToInstall()
{
// 1 Read FileToInstall.txt Line By Line from C:\Temp2\BarsInstaller
// 2 each line read copy to correct location
// 3. update progress bar
string[] lines = File.ReadAllLines(@"C:\Temp2\BarsInstaller\FilesToInstall.txt");
string sourcePath = @"C:\Temp2\BarsInstaller\";
progressBar.Invoke((Action)delegate
{
progressBar.Maximum = lines.Length;
progressBar.Value = 0;
lblPercent.Text = "0%";
});
foreach (string line in lines)
{
string[] col = line.Split('=');
//process col[0], col[1], col[2]
string fileName = col[0];
//string sourceFullName = source + fileName;
DirectoryInfo fileCopyToLocation = new DirectoryInfo(col[1]);
string sourceFile = Path.Combine(sourcePath, fileName);
string destFile = Path.Combine(col[1], fileName);
darkLabel2.Invoke((Action)delegate
{
darkLabel2.Text = destFile;
darkLabel2.Refresh();
});
copyFilesToInstall(sourceFile, destFile, fileCopyToLocation);
progressBar.Invoke((Action)delegate
{
progressBar.Value++;
});
}
}
void copyFilesToInstall(string sourceFile, string destFile, DirectoryInfo target)
{
if(Directory.Exists(target.FullName) == false)
{
Directory.CreateDirectory(target.FullName);
}
File.Copy(sourceFile, destFile, true);
}