0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 61
|
|
1 | |
Процесс не может получить доступ к файлу, так как этот файл используется другим процессом01.07.2019, 11:48. Показов 5786. Ответов 4
Метки нет (Все метки)
Здравствуйте.
У меня есть 2 таймера. 1 таймер каждые 5 секунд скачивает файл с сервера по фтп. А 2 таймер каждые 8 секунд проверяет что написано в скачанном файле, и в зависимости от того, что там написано, он выполняет указанные действия. То есть если там написано 1, то мы выводим сообщение с текстом "1", если там написано 2, то мы выводим сообщение с текстом "2" и так далее. Так вот, эти 2 таймера вместе работать не могут. Ошибка такая: Процесс не может получить доступ к файлу "D:\cmd.txt", так как этот файл используется другим процессом. А вот собственно весь код Кликните здесь для просмотра всего текста
Код
using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using System.Linq; using System.Threading; using System.Runtime.InteropServices; using System.Diagnostics; using System.IO; using System.Net; using System.Text; namespace serv { public partial class MainForm : Form { public MainForm() { this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.ShowInTaskbar = false; this.Load += new EventHandler(Form1_Load); System.Threading.Timer timer = new System.Threading.Timer((t) => { FtpWebRequest request = (FtpWebRequest)WebRequest.Create("фтп/cmd.txt"); request.Method = WebRequestMethods.Ftp.DownloadFile; request.Credentials = new NetworkCredential("логин", "пароль"); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); FileStream fs = new FileStream("D://cmd.txt", FileMode.Create); byte[] buffer = new byte[64]; int size = 0; while ((size = responseStream.Read(buffer, 0, buffer.Length)) > 0) { fs.Write(buffer, 0, size); } fs.Close(); response.Close(); }); timer.Change(5000, 5000); System.Threading.Timer timer1 = new System.Threading.Timer((t) => { if (File.Exists("D:\\cmd.txt")) using (StreamReader SR = new StreamReader("D:\\cmd.txt")) switch(SR.ReadLine()) { case "1": MessageBox.Show("1"); break; case "2": MessageBox.Show("2"); break; case "3": MessageBox.Show("3"); break; case "4": MessageBox.Show("4"); break; } }); timer1.Change(8000, 8000); } void Form1_Load(object sender, EventArgs e) { this.Size = new Size(0, 0); } } } Мне нужно чтобы это работало так, как я сказал вначале. Заранее спасибо
0
|
01.07.2019, 11:48 | |
Ответы с готовыми решениями:
4
Процесс не может получить доступ к файлу, так как этот файл используется другим процессом Процесс не может получить доступ к файлу так как этот файл используется другим процессом Не удалось скопировать файл. Процесс не может получить доступ к файлу, так как этот файл используется другим процессом Процесс не может получить доступ к файлу "C:\Pro\Setting\NameFunction.txt", так как этот файл используется другим процессом |
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
|
|
01.07.2019, 11:52 | 2 |
Сообщение было отмечено Артур Миронов как решение
Решение
зачем таймер на проверку? после того как файл полностью загрузится, просто читайте его
0
|
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 61
|
|
01.07.2019, 11:59 [ТС] | 3 |
Immo, кодом можно?
0
|
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
|
||||||
01.07.2019, 12:10 | 4 | |||||
Сообщение было отмечено Артур Миронов как решение
Решение
как то так
и соответственно просто вызывайте DownloadFileFTP() через нужный промежуток времени
1
|
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 61
|
|
01.07.2019, 14:58 [ТС] | 5 |
спасибо
0
|
01.07.2019, 14:58 | |
01.07.2019, 14:58 | |
Помогаю со студенческими работами здесь
5
File.Create(). Процесс не может получить доступ к файлу , так как этот файл используется Не удалось получить доступ к файлу так как он используется другим процессом Процесс не может получить доступ к файлу, так как этот файл используется другим процессом Процесс не может получить доступ к файлу, так как этот файл используется другим процессом Процесс не может получить доступ к файлу, так как этот файл используется другим процессом Ошибка: "Процесс не может получить доступ к файлу, так как этот файл используется другим процессом" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |