.NET 2.x "Этот файл используется другим процессом" - C#

Узнай цену своей работы

Формулировка задачи:

Закачать например .txt на FTP - проблем нет, но если хочу закачать файл который используется, тогда при отправке пишет "...Этот файл используется другим процессом" как быть?
namespace myyy
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (var comboBox8 in Directory.GetFiles(@"путь", "Файл", SearchOption.TopDirectoryOnly))
                {
                    FileInfo fileInf = new FileInfo(comboBox8);
                    string uri = "ftp://" + "ftp.site.ru" + "/" + fileInf.Name;
                    FtpWebRequest reqFTP;
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + "ftp.site.ru" + "/" + fileInf.Name));
                    reqFTP.Credentials = new NetworkCredential("login", "pass");
                    reqFTP.KeepAlive = false;
                    reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
                    reqFTP.UseBinary = true;
                    reqFTP.ContentLength = fileInf.Length;
                    int buffLength = 2048;
                    byte[] buff = new byte[buffLength];
                    int contentLen;
                    FileStream fs = fileInf.OpenRead();
                    try
                    {
                        Stream strm = reqFTP.GetRequestStream();
                        contentLen = fs.Read(buff, 0, buffLength);
                        while (contentLen != 0)
                        {
                            strm.Write(buff, 0, contentLen);
                            contentLen = fs.Read(buff, 0, buffLength);
                        }
                        strm.Close();
                        fs.Close();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Ошибка");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("err: " + ex.Message);
            }
        }
    }
}

Решение задачи: «.NET 2.x "Этот файл используется другим процессом"»

textual
Листинг программы
...
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
//FileStream fs = fileInf.OpenRead();
FileStream fs = new FileStream(fileInf.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
try
...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы