Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
5 / 5 / 2
Регистрация: 01.12.2019
Сообщений: 286
.NET 5

Процесс не может получить доступ к файлу

19.01.2023, 21:59. Показов 674. Ответов 11
Метки c# (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Помогите найти обход ошибке:
Процесс не может получить доступ к файлу, так как этот файл используется другим процессом

Использую AltoHttp
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            Uri uri = new Uri(master_url);
            string stels_url = uri.AbsoluteUri;
            foreach (var fileName in downloadProvider.Files)
            {
                CreateNeccessaryDirs(path + @"\" + fileName.Value);
                if (File.Exists(path + @"\" + fileName.Value))
                {
                    continue;
                }
                prevDownloadedSize = 0L;
                
                myQueue.QueueProgressChanged += MyQueue_QueueProgressChanged;
                myQueue.QueueCompleted += MyQueue_QueueCompleted;
                myQueue.Add(stels_url + "/" + fileName.Key, path + @"\" + fileName.Value);
                myQueue.StartAsync();
 
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2023, 21:59
Ответы с готовыми решениями:

Процесс не может получить доступ к файлу
Необходимо считать массив из файла и записать его в консоль using System; using System.IO; class Side { public Side(string...

Процесс не может получить доступ к файлу
Как исправить ошибку? LoadVideo: Процесс не может получить доступ к файлу "C:\Temp\preview.avs", так как этот файл используется...

Процесс не может получить доступ к файлу
Здравствуйте, как после создания файла прочитать или записать в текстовый файл, пишет, что файл не доступен так как используется другим...

11
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
19.01.2023, 23:15
L1onelY, и в какой строке?
А вообще если не хотите заморачиваться - в try catch оберните и всё)
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3439 / 2759 / 575
Регистрация: 04.09.2018
Сообщений: 8,679
Записей в блоге: 3
19.01.2023, 23:39
Цитата Сообщение от Sanya_sa Посмотреть сообщение
в try catch оберните и всё)
Данные похерит. А ошибка у него вылетает вообще в другом каком-то месте, где он свой fileName не закрывает.
0
5 / 5 / 2
Регистрация: 01.12.2019
Сообщений: 286
20.01.2023, 00:16  [ТС]
wizard41, поправил там чутка, и вроде как работает, но вот не задача, новая ошибка

Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3439 / 2759 / 575
Регистрация: 04.09.2018
Сообщений: 8,679
Записей в блоге: 3
20.01.2023, 00:18
Цитата Сообщение от L1onelY Посмотреть сообщение
новая ошибка
о чем говорит?
0
5 / 5 / 2
Регистрация: 01.12.2019
Сообщений: 286
20.01.2023, 00:23  [ТС]
wizard41, о том что я в правильном направлении

Добавлено через 3 минуты
wizard41, Не пойму, что я не так делаю?
Вот смотрите:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DownloadQueue myQueue = new DownloadQueue();
 
        public void DownloadFiles(string path)
        {
            if (path == string.Empty)
                return;
 
            Uri uri = new Uri(master_url);
            string stels_url = uri.AbsoluteUri;
            foreach (var fileName in downloadProvider.Files)
            {
                CreateNeccessaryDirs(path + @"\" + fileName.Value);
                myQueue.QueueProgressChanged += MyQueue_QueueProgressChanged;
                if (File.Exists(path + @"\" + fileName.Value))
                {
                    continue;
                }
                StartDownload?.Invoke(this, new StartDownloadFileArgs { FileName = fileName.Value });
                myQueue.Add(stels_url + "/" + fileName.Key, path + @"\" + fileName.Value);
            }
            ProgressChanged?.Invoke(this, new Events.DownloadProgressChangedEventArgs() { NewPercentage = myQueue.CurrentProgress });
            myQueue.StartAsync();
            
        }
C#
1
2
3
4
5
6
7
8
9
private void OnProgressChanged()
        {
            Events.DownloadProgressChangedEventArgs eventInfo;
            eventInfo = new Events.DownloadProgressChangedEventArgs() { NewPercentage = GetPercentage(), 
                Speed = myQueue.CurrentDownloadSpeed, DownloadedSize = currentDownloadedSize, AllSize = downloadProvider.Size
            };
           
            ProgressChanged?.Invoke(this, eventInfo);
        }

Использую:

C#
1
2
3
4
var d = new Downloader(download_mp_link, new MPDownloadProvider(), needToDownloadSize);
                d.ProgressChanged += D_ProgressChanged;
                d.StartDownload += D_StartDownload;
                d.DownloadFiles(patch + @"\folder_download\");
Добавляю прогресс:
И резко появляется проблема о том, что поток занят, кем и как? Не понимаю...
C#
1
2
3
4
private void D_ProgressChanged(object sender, Launcher.Game.Events.DownloadProgressChangedEventArgs e)
        {
            progress_update.Value = e.NewPercentage;
}
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3439 / 2759 / 575
Регистрация: 04.09.2018
Сообщений: 8,679
Записей в блоге: 3
20.01.2023, 00:23
L1onelY, она говорит о том, что ты вовсе не умеешь работать с потоками.
0
5 / 5 / 2
Регистрация: 01.12.2019
Сообщений: 286
20.01.2023, 00:30  [ТС]
wizard41, Так помогите разобраться
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3439 / 2759 / 575
Регистрация: 04.09.2018
Сообщений: 8,679
Записей в блоге: 3
20.01.2023, 00:40
L1onelY, я тебе намекнул на фундаментальные принципы, с которыми ты должен разобраться, прежде, чем будешь юзать мультипоточность и работу с файлами и ресурсами. Разбираться в неведомой мне AltoHttp нет ни времени ни желания.
Цитата Сообщение от L1onelY Посмотреть сообщение
C#
1
Launcher.Game.
Все понятно, очередной гейм-дев, который не знает основ, а полез "в пекло".
К твоей этой приблуде наверняка есть описание, где возможно сказано, как и что делать. Читать FAQ надо иногда, особенно, если совсем ни бум-бум..
0
5 / 5 / 2
Регистрация: 01.12.2019
Сообщений: 286
20.01.2023, 00:46  [ТС]
wizard41, оказывается бум-бум, если сделал на webclient, но, там нет возможности сделать паузу, приходиться костылями пользоваться.

Я смотрел те методы и решения которые вы предлагали, и из маломальски толкового ничего практически нет, всё высосано из пальца.

P.S AltoHttp, чем не угодил?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3439 / 2759 / 575
Регистрация: 04.09.2018
Сообщений: 8,679
Записей в блоге: 3
20.01.2023, 00:59
Цитата Сообщение от L1onelY Посмотреть сообщение
P.S AltoHttp, чем не угодил?
Смотри, ты пишешь неведомо что, причем используя неведомо чего. Кто будет в этом разбираться? Я про этот AltoHttp в первый раз слышу. Но проблема даже не в нем. А в том, что ты не разобравшись толком пытаешься там что-то накалякать. Тут разбираться остальным не надо; достаточно указать на те пробелы в твоих познаниях, про которые я сказал выше.
То у тебя файл занят другим процессом, то он вообще в другом потоке находится. Вот с этим разберись - почему так..

Добавлено через 1 минуту
Цитата Сообщение от L1onelY Посмотреть сообщение
Я смотрел те методы и решения которые вы предлагали
Я ничего еще не предлагал. Тем более никаких методов и решений.
0
5 / 5 / 2
Регистрация: 01.12.2019
Сообщений: 286
20.01.2023, 19:50  [ТС]
wizard41, Если есть возможность, предложите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2023, 19:50
Помогаю со студенческими работами здесь

Процесс не может получить доступ к файлу
Такая проблема. Открываю файл для чтения,и он разносит информацию по textbox'ам.Вот код для чтения: OpenFileDialog ofd = new...

Процесс не может получить доступ к файлу
Проблема вот какая: Файл создаеться после чего появляеться ошибка "Процес не может получить доступ к файлу" try ...

Процесс не может получить доступ к файлу
Здравствуйте, в программе 2 потока, оба они работают с 1 текстовым файлом, так вот постоянно вылазит такая ошибка. ...

Процесс не может получить доступ к файлу
Здравствуйте, в чем проблема? Когда затрагивает сохранение, выдает: private void SaveText(string file, string text) { ...

Процесс не может получить доступ к файлу
Здравствуйте, использую данный код: using (StreamWriter myWriter = new StreamWriter(@"protocol.txt")) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru