2016-12-09 11 views
0

"IREAuthenSharePath"でコピーファイルを変更したい場合は、新しいパーミッションを変更してください。私は古い許可を保持したい。コピーファイルはどのように古い許可を保持していますか?

コードC#

IREAuthenSharePath pAuthen = new IREAuthenSharePath(); 
string shareNameConfirm = "Test\COPY_File"; 
string targetPath = pAuthen.LoginToShareMapDrive(serverName, shareNameConfirm, userName, password); // \\10.111.210.20\Test\COPY_File 

foreach (GridViewRow row in gvDetail.Rows) 
{ 
    var isChecked = (row.FindControl("cbxStatus") as CheckBox).Checked; 
    if (!isChecked) continue; 

    string fileName = (row.FindControl("lblName") as Label).Text; //Test01 
    string filePath = (row.FindControl("lblHFPath") as Label).Text; // \\10.111.210.20\Test\Ori_File\Test01 

    //Copy TAP File 
    string sourcePath = @"\\10.111.210.20\Test\Ori_File"; 
    string sourceFile = Path.Combine(sourcePath, fileName); 
    string destFile = Path.Combine(targetPath, fileName); 
    File.Copy(sourceFile, destFile, true); 
    FileInfo file1 = new FileInfo(filePath); 
    FileInfo file2 = new FileInfo(filePath); 
    FileSecurity ac1 = file1.GetAccessControl(); 
    ac1.SetAccessRuleProtection(true, true); 
    file2.SetAccessControl(ac1); ==> Error Attempted to perform an unauthorized operation. 
} 

コピーは、私は古いを維持するためにコピーされたファイルが欲しい

File name  Permission 
TEST01   0777 
TEST02   0777 
TEST03   0777 
TEST04   0777 

ファイルをコピーした後

**File name  Permission** 
TEST01   0666 
TEST02   0062 
TEST03   0444 
TEST04   0777 

をファイルの前に許可、私はそれが許可0777を持っておきたいとは思わない。

+0

このリンクを参照して、役立つかどうかを確認してください。 http://stackoverflow.com/questions/9163831/copy-a-file-with-its-original-permissions –

+0

@AnandSubramanian私はこのトピックを試しました。エラー行:file2.SetAccessControl(ac1)もあります。 – nettoon493

答えて

0

これが役立つかどうかチェックすることができます。 https://social.msdn.microsoft.com/Forums/en-US/99d3825a-748f-4bd8-a77e-6f4f3b12267b/how-to-give-access-file-full-control-by-c-code-?forum=csharplanguage

FileInfo fileInfo = new FileInfo("database_library.mdb"); 
     FileSecurity accessControl = fileInfo.GetAccessControl(); 
     accessControl.AddAccessRule(new FileSystemAccessRule("user account name", FileSystemRights.FullControl, AccessControlType.Allow)); 
     fileInfo.SetAccessControl(accessControl); 
関連する問題