Скопируйте файл с оригинальными разрешениями - PullRequest
6 голосов
/ 06 февраля 2012

При использовании метода File.Copy () файл копируется в новый каталог, но он теряет свои исходные разрешения.

Есть ли способ скопировать файл, чтобы он не потерял разрешения?

1 Ответ

12 голосов
/ 06 февраля 2012

Полагаю, вы можете сделать что-то вроде этого:

const string sourcePath = @"c:\test.txt";
const string destinationPath = @"c:\test2.txt"

File.Copy(sourcePath, destinationPath);

FileInfo sourceFileInfo = new FileInfo(sourcePath);
FileInfo destinationFileInfo = new FileInfo(destinationPath);

FileSecurity sourceFileSecurity = sourceFileInfo.GetAccessControl();
sourceFileSecurity.SetAccessRuleProtection(true, true);
destinationFileInfo.SetAccessControl(sourceFileSecurity);
...