|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Нет доступа при копировании файлов в папку Windows\winsxs\Manife |
|
Delphi - [решено] Нет доступа при копировании файлов в папку Windows\winsxs\Manife
|
Ветеран Сообщения: 1158 |
Профиль | Отправить PM | Цитировать Народ, проблема такова , нужно скопировать файлы в папку Windows\winsxs\Manifests , но у меня выскакивает ошибка при копировании , отказано в доступе .
Хотя привилегии включены SetPrivilege('SeBackupPrivilege', True); SetPrivilege('SeRestorePrivilege', True); + манефест и запускаю от имени администратора . С этими привилегиями у меня нет проблем при удалении файлов и папок и не нужно получать на их права . Ну вот столкнулся с проблемами при копировании. Использую функцию function CopyFiles(aSourceDir, aDestDir, aExt: string): Integer; procedure BuildFilesList(aPath, aBasePath, aExt: string; aOutTS: TStrings); var SR: TSearchRec; function ExpandRelativePath: string; var s: string; begin s := aPath + SR.Name; Delete(s, 1, Length(aBasePath)); Result := s; end; begin ZeroMemory(@SR, SizeOf(SR)); aPath := IncludeTrailingPathDelimiter(aPath); if aExt = EmptyStr then aExt := '*.*'; try if (System.SysUtils.FindFirst(aPath + aExt, faAnyFile, SR) = 0) then begin repeat if (SR.Name <> '.') and (SR.Name <> '..') then begin if (SR.Attr and faDirectory) = faDirectory then BuildFilesList(IncludeTrailingPathDelimiter(aPath + SR.Name), aBasePath, aExt, aOutTS) else aOutTS.Add(ExpandRelativePath); end; until (System.SysUtils.FindNext(SR) <> 0); end; finally System.SysUtils.FindClose(SR); end; end; var ts: TStringList; i, r: Integer; begin Result := 0; r := 0; try ts := TStringList.Create; aSourceDir := IncludeTrailingPathDelimiter(aSourceDir); aDestDir := IncludeTrailingPathDelimiter(aDestDir); ForceDirectories(aSourceDir); // :D ForceDirectories(aDestDir); // (: BuildFilesList(aSourceDir, aSourceDir, aExt, ts); if ts.Count = 0 then Exit; for i := 0 to ts.Count - 1 do begin if FileExists(aSourceDir + ts[i]) then begin ForceDirectories(ExtractFileDir(aDestDir + ts[i])); if CopyFile(PChar(aSourceDir + ts[i]), PChar(aDestDir + ts[i]), False) then Inc(r); end; end; finally FreeAndNil(ts); end; Result := r; end; |
|
------- Отправлено: 21:38, 26-10-2016 |
Ветеран Сообщения: 1158
|
Профиль | Отправить PM | Цитировать Вопрос решён !
|
------- Отправлено: 21:17, 28-10-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Тормозит машина при копировании файлов. Нет родных драйверов для Windows Server 2012 | Rockie | Поиск драйверов, прошивок и руководств | 4 | 10-09-2015 20:57 | |
Разное - Windows 7 , зависание при копировании больших файлов | Xinz | Microsoft Windows 7 | 4 | 07-10-2012 09:43 | |
Интерфейс - Изменить слово копия при копировании файла в ту же папку | CemKey | Microsoft Windows 7 | 0 | 18-02-2012 20:52 | |
Разное - [решено] Windows 8: Проблема при копировании файлов по сети | dzekka | Microsoft Windows 8 и 8.1 | 6 | 27-01-2012 15:57 |
|