Изменить разрешение файла после загрузки по FTP - PullRequest
2 голосов
/ 24 марта 2020

Я загружаю файлы в папке на рабочем столе на сервер Windows Server 2012.
Загрузка выполняется правильно, но мне нужно изменить разрешение на чтение и удаление загруженного файла.
Как я могу сделать это в этом коде?

    string ftpIPServidor = "XXXX"; 
    string ftpUsuarioID = "XX";
    string ftpSenha = "XXXXXXX";

    FileInfo _arquivoInfo = new FileInfo(_nomeArquivo);
    string uri = "ftp://" + ftpIPServidor + "/" + _arquivoInfo.Name;
    FtpWebRequest requisicaoFTP;
    requisicaoFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpIPServidor + "/" + _arquivoInfo.Name));

    requisicaoFTP.Credentials = new NetworkCredential(ftpUsuarioID, ftpSenha);

    requisicaoFTP.KeepAlive = false;

    requisicaoFTP.Method = WebRequestMethods.Ftp.UploadFile;

    requisicaoFTP.UseBinary = true;

    requisicaoFTP.ContentLength = _arquivoInfo.Length;

    // Define o tamanho do buffer para 2kb
    int buffLength = 2048;
    byte[] buff = new byte[buffLength];
    int _tamanhoConteudo;

    FileStream fs = _arquivoInfo.OpenRead();
    var horaAgora = DateTime.Now;

    try
    {
        Stream strm = requisicaoFTP.GetRequestStream();

        _tamanhoConteudo = fs.Read(buff, 0, buffLength);

        while (_tamanhoConteudo != 0)
        {
            // Escreve o conteudo a partir do arquivo para o stream FTP 
            strm.Write(buff, 0, _tamanhoConteudo);
            _tamanhoConteudo = fs.Read(buff, 0, buffLength);
        }

        strm.Close();
        fs.Close();

        Console.WriteLine(horaAgora + " :> Upload of " + _arquivoInfo.Name);
        fi.Delete();
    }
    catch (Exception ex)
    {
        Console.WriteLine(horaAgora + " :> Err " + _arquivoInfo.Name);

    }

1 Ответ

2 голосов
/ 24 марта 2020

В пакете есть методы расширения, называемые GetAccessControl и SetAccessControl System.IO.FileSystem.AccessControl

Подробнее здесь

Как изменить управление доступом к файлам в. NET ядро

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...