0

DestinationFileName にアクセスしようとしていますが、パスへのアクセスが拒否されたという例外が表示されます。通常、パス変数に渡すデータは C:\Users\SkyDrive\SSD\SSDAssignment\SSDAssignment\MvcApplication1\Gallery\abc.jpg であり、DestinationFileName のパスは C:\Users\SkyDrive\SSD\SSDAssignment\ です。 SSDAssignment\MvcApplication1\Gallery

        FileStream InFile = new FileStream(Path, FileMode.Open);
        FileStream OutputStream = new FileStream(DestinationFileName, FileMode.Create,         FileAccess.ReadWrite);

なぜ私がこの例外を抱えているのか、誰もが知っています..

彼はメソッド全体であるため、より明確になります

public bool HybridEncription(string Path, string DestinationFileName, string PublicKey)
    {
        FileStream InFile = new FileStream(Path, FileMode.Open);
        FileStream OutputStream = new FileStream(DestinationFileName, FileMode.Create, FileAccess.ReadWrite);
        RijndaelManaged Rm = null;
        byte[] ToEncBytes = null;
        try
        {
            ToEncBytes = new byte[InFile.Length];
            InFile.Read(ToEncBytes, 0, (int)InFile.Length);
            //Ask to use Keys of digital signing
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.FromXmlString(PublicKey);
            Rm = new RijndaelManaged();
            byte[] EncryptedKey = rsa.Encrypt(Rm.Key, false);
            byte[] EncryptedIV = rsa.Encrypt(Rm.IV, false);
            OutputStream.Write(EncryptedKey, 0, EncryptedKey.Length);
            OutputStream.Write(EncryptedIV, 0, EncryptedIV.Length);
            ICryptoTransform Transform = Rm.CreateEncryptor();
            CryptoStream CStream = new CryptoStream(OutputStream, Transform, CryptoStreamMode.Write);
            CStream.Write(ToEncBytes, 0, ToEncBytes.Length);
            CStream.FlushFinalBlock();
            OutputStream.Flush();
            CStream.Close();
            InFile.Close();
            OutputStream.Close();
            System.IO.File.Delete(Path);
            return true;
        }
4

0 に答える 0