C# - нет доступа к созданному файлу, файл используется другим процессом. Как поправить?

Voland700

Новичок
Регистрация
29.01.2024
Сообщения
16
Благодарностей
1
Баллы
3
Процессе написания шаблона парсера контента, используется свой C# - код, для создания Excel – файла,

C#:
FileInfo file = new FileInfo(project.Directory + "/data.xlsx");
if (file.Exists)
{
    project.SendInfoToLog("Файл существует, пеерсоздание", true);
    file.Delete();
    file = new FileInfo(project.Directory + "/data.xlsx");
    file.Create();
}else{
    project.SendInfoToLog("Файл не существует, создадим!", true);
    file = new FileInfo(project.Directory + "/data.xlsx");
    file.Create();
}

var package = new ExcelPackage(file);
ExcelWorksheet Table = package.Workbook.Worksheets[1];
Файл создается успешно, однако последующий код останавливается, с ошибкой:

Выполнение действия CSharp OwnCode. Процесс не может получить доступ к файлу "E:\_zeno\parser\data.xlsx", так как этот файл используется другим процессом.
Если я правильно понимаю, после создания, файл остается открытым, в связи с чем, созданный файл не доступен.

Прошу совета:
Как поправить? Или может быть есть другие способы создания Excel- файла, для последующей работы с ним?
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63

Voland700

Новичок
Регистрация
29.01.2024
Сообщения
16
Благодарностей
1
Баллы
3

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Почему-то нет, не создает.
При отсутствии data.xsls - файла ошибка:
что бы не мучать себя и других, проверь сразу, если ты создашь пустой файл ручками (ну прям вот как текствовик пустой, без структуры xlsx, которая обязана быть в таких файлах), сможешь ли ты его указать для ExcelPackage и не будет ли ошибка....
а то нагородишь сейчас... а оно все равно на пустом файле работать не будет.... :bn:
 

Voland700

Новичок
Регистрация
29.01.2024
Сообщения
16
Благодарностей
1
Баллы
3
а что new ExcelPackage сам не создаст файл ?
Все благодарю за подсказку, проблема решена. New ExcelPackage действительно сам создаёт файл.
Благодаря Вашей подсказке понял где ошибка.
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 248
Благодарностей
674
Баллы
113
Все благодарю за подсказку, проблема решена. New ExcelPackage действительно сам создаёт файл.
Благодаря Вашей подсказке понял где ошибка.
После создания файл надо закрывать file.Create().Close();
 

Voland700

Новичок
Регистрация
29.01.2024
Сообщения
16
Благодарностей
1
Баллы
3

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 248
Благодарностей
674
Баллы
113
Пробывал. Не работает.
В моем случае, file - создается классом FileInfo, у данного класса не метода .Close().
Тогда надо проверить реализует ли класс FileInfo интерфейс iDisposable и если да, то работу с этим классом осуществлять в конструкции using, что бы объект нормально работу завершал
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)