powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / System.IO.File.Exists не срабатывает
21 сообщений из 21, страница 1 из 1
System.IO.File.Exists не срабатывает
    #40079640
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
goodList = await (from good  in _db.view_goods_stocks_MVC
                                      where good.type_id == 1025
                                      || good.type_id == 1018
                                      || good.type_id == 1063
                                      || good.type_id == 1073
                                      || good.type_id == 1031
                                      || good.type_id == 1021
                                      || good.type_id == 1027
                                      || good.type_id == 1033
                                      || good.type_id == 1035
                                      where File.Exists(good.nomencl_image_path) == true
                                      select good).ToListAsync();


Этот метод находится в сервисе. Почему то выдает ошибку, требует AsAsyncEnumerable.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079677
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp,

я конечно не эксперт, но
_db.view_goods_stocks_MVC.AsAsyncEnumerable()
трудно написать?
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079700
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,
Благодарю за ответ, но vs ругается
Could not find an implementation of the query pattern for source type 'IAsyncEnumerable<view_goods_stocks_MVC>'. 'Where' not found.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079725
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Код: c#
1.
where File.Exists(good.nomencl_image_path) == true



Вам нельзя с таким условием построить и выполнить асинхронный запрос!

Наверное вы полагаете, что проверка наличия файла улетит в БД и будет там выполняться, так?
Как бы не так.

Сначала из БД заберите данные, получите списком.
Затем уже делайте фильтрацию по наличия файла, уже без всяких await.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079839
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Код: c#
1.
2.
 objGoods = objGoods.Where(x => x.nomencl_image_path.Contains("_1.jpg"))
            .Where(x => File.Exists(x.nomencl_image_path))

ошибка не выскакивает, благодарю. Только File.Exists всегда возвращает false. Путь к файлу, записанный в базе данных примерно такой " /img/goods/0050101010_3130_1.jpg"
Файлы в данный момент находятся на локальном компьютере и полный адрес выглядит так "C:\Users\NameComputer\source\repos\GetObjectNewBase\jeansBlazorAsh\wwwroot\img\goods\0050101010_3130_1.jpg"
Пытался в БД изменить направление слэша - не помогает. Или где то нужно поставить тильду?
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079846
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тильда к File.* не имеет никакого отношения

формируй полный путь к файлу, что мешает?
Путь к wwwroot можно извлечь из конфигурации
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079897
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
У меня ума не хватает как и откуда этот путь извлекать. Может подскажете, как еще можно проконтролировать соответствие наличия изображений в файловой системе наличию записи в таблице пути к этому изображению?
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079902
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079913
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Не врубаюсь не могу!!! Буду вручную заполнять Directory.GetFiles Method . Спасибо
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079914
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты же сам описал проблему
jeanssp
Только File.Exists всегда возвращает false. Путь к файлу, записанный в базе данных примерно такой " /img/goods/0050101010_3130_1.jpg"
Файлы в данный момент находятся на локальном компьютере и полный адрес выглядит так "C:\Users\NameComputer\source\repos\GetObjectNewBase\jeansBlazorAsh\wwwroot\img\goods\0050101010_3130_1.jpg"

Что тебе мешает для File.Exists превратить частичный путь в полный, я не знаю.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079946
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@code {
    bool htype = true; bool hw = true; bool hl = true; bool hmanuf = true;

    [Parameter]
    public EventCallback<HashSet<int>> OnClickCallback { get; set; }
    public HashSet<int> ManufIdList = new HashSet<int>();

    protected override async Task OnInitializedAsync()
    {
        // запускаем без ожидания, для отзывчивости UI
        await InitAsync();
    }
    IEnumerable<view_goods_stocks_MVC> objGoods;

    private async Task InitAsync()
    {
        htype = hw = hl = hmanuf = true;
        objGoods = await objGoodStockService.GetGoodsAsync(radioItem);

        string p = "C:\\Users\\NameComputer\\source\\repos\\GetObjectNewBase\\jeansBlazorAsh\\wwwroot";
        objGoods = objGoods.Where(x => x.nomencl_image_path.Contains("_1.jpg"))
            .Where(x => File.Exists(p+x.nomencl_image_path)==true);
        await InvokeAsync(StateHasChanged);


Вымучил, заработало. А ничего , что этот код в классе index.razor?
Я хотел в сервисе сделать, но там все методы асинхронные , пока не получается.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40079995
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Я хотел в сервисе сделать, но там все методы асинхронные , пока не получается.
проблема не ясна
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40080366
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
 public class GoodStockService
    {
        private readonly Point4Context _db;
        public GoodStockService(Point4Context db)
        {
            _db = db;
        }
      
        public async Task<List<view_goods_stocks_MVC>> GetGoodsAsync(string ri)
        {
            List<view_goods_stocks_MVC> goodList = new List<view_goods_stocks_MVC>();
           
            string r;
            r = ri;
            switch (r)
            {
                case "1":

                    goodList = await (from good  in _db.view_goods_stocks_MVC
                                      where good.type_id == 1025
                                      || good.type_id == 1018
                                      || good.type_id == 1063
                                      || good.type_id == 1073
                                      || good.type_id == 1031
                                      || good.type_id == 1021
                                      || good.type_id == 1027
                                      || good.type_id == 1033
                                      || good.type_id == 1035
                                      select good).ToListAsync();

                    break;
                case "2":
                    goodList = await (from good in _db.view_goods_stocks_MVC
                                      where good.type_id == 1015
                                      || good.type_id == 1022
                                      || good.type_id == 1023
                                      || good.type_id == 1029
                                      || good.type_id == 1030
                                      || good.type_id == 1034
                                      || good.type_id == 1039
                                      || good.type_id == 1066
                                      || good.type_id == 1037
                                      || good.type_id == 1038
                                      || good.type_id == 1041
                                      || good.type_id == 1042
                                      || good.type_id == 1027
                                      || good.type_id == 1044
                                      || good.type_id == 1046
                                      || good.type_id == 1049
                                      || good.type_id == 1051
                                      || good.type_id == 1052
                                      || good.type_id == 1054
                                      || good.type_id == 1056
                                      || good.type_id == 1058
                                      || good.type_id == 1059
                                      || good.type_id == 1060
                                      || good.type_id == 1062

                                      select good).ToListAsync();
                    break;
                case "3":
                    goodList = await (from good in _db.view_goods_stocks_MVC
                                      where good.type_id == 1043
                                       || good.type_id == 1047
                                       || good.type_id == 1072
                                       || good.type_id == 1071

                                      select good).ToListAsync();
                    break;
                case "4":
                    goodList = await (from good in _db.view_goods_stocks_MVC
                                      where good.type_id == 1019
                                       || good.type_id == 1017
                                       || good.type_id == 1021
                                       || good.type_id == 1026
                                       || good.type_id == 1028
                                       || good.type_id == 1032
                                       || good.type_id == 1036
                                       || good.type_id == 1064
                                       || good.type_id == 1065

                                      select good).ToListAsync();
                    break;
                case "5":
                    goodList = await (from good in _db.view_goods_stocks_MVC
                                      where good.type_id == 1016
                                       || good.type_id == 1040
                                       || good.type_id == 1045
                                       || good.type_id == 1026
                                       || good.type_id == 1050
                                       || good.type_id == 1053
                                       || good.type_id == 1055
                                       || good.type_id == 1058
                                       || good.type_id == 1061

                                      select good).ToListAsync();
                    break;
                case "6":
                    goodList = await (from good in _db.view_goods_stocks_MVC
                                      where good.type_id == 1048
                                      
                                      select good).ToListAsync();
                    break;
            }
       
            string p = "C:\\Users\\NameComputer\\source\\repos\\GetObjectNewBase\\jeansBlazorAsh\\wwwroot";
           
               
            goodList = (List<view_goods_stocks_MVC>)goodList.Where(x => File.Exists(p+x.nomencl_image_path));
            return goodList;

        }

Shocker.Pro,
Пытаюсь условие по наличию файла поставить в сервисе, не работает.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40080782
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
не работает.
по всей видимости, на экране появляется сообщение "не работаю"

вот если ты заставишь себя наконец четко, ясно и однозначно сформулировать, что значит "не работает", то, скорее всего, сам и решишь проблему. А ковырять простыни нет никакого желания.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40081119
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp,

какой образцовый говнокод.
а как именно не работает, исключение выдает, результат отличается от ожидаемого?
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40081499
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!,
Выдает ошибку в окне браузера. Код компилируется, но не выполняется. Не хочется сейчас его опять возвращать. Об этом написано в первых 3-4 сообщениях данной темы.
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40081631
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
winsky!,
Выдает ошибку в окне браузера. Код компилируется, но не выполняется. Не хочется сейчас его опять возвращать. Об этом написано в первых 3-4 сообщениях данной темы.


попробуй пошагово отладить. для отладки можещь linq заменить на явные вызовы
и смотри что в этом случае будет
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40082317
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp,

какую ошибку?
я конечно телепат, но не настолько.
автор Не хочется сейчас его опять возвращать. Об этом написано в первых 3-4 сообщениях данной темы.
если вам вам лениво, то представьте, что со мной происходит..
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40082440
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Код: c#
1.
2.
               
goodList = (List<view_goods_stocks_MVC>)goodList.Where(x => File.Exists(p+x.nomencl_image_path));



Эта строка кода выбросит исключение.
Where возвращает IEnumerable, его невозможно скастовать в List.

Где-то выше по коду исключения глотаются?
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40082444
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
25.
26.
27.
28.
private int[] typeIds1 = new int[] { 1025, ... };
private int[] typeIds2 = new int[] { 1015, ... };
...

public async Task<List<view_goods_stocks_MVC>> GetGoodsAsync(string ri)
{
    int[] typeIds;

    switch (ri)
    {
        case "1":
            typeIds = typeIds1;
            break;
        case "2":
            typeIds = typeIds2;
            break;
        ...
    }

    var goodList = await (from good in _db.view_goods_stocks_MVC
                          where typeIds.Contains(good.type_id)
                          select good)
                          .ToListAsync();

    string p = "C:\\Users\\NameComputer\\source\\repos\\GetObjectNewBase\\jeansBlazorAsh\\wwwroot";

    return goodList.Where(x => File.Exists(p + x.nomencl_image_path)).ToList();
}
...
Рейтинг: 0 / 0
System.IO.File.Exists не срабатывает
    #40082447
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два вызова ToList - неэффективно. Первый желательно заменить на AsEnumerable.

Если нужно непременно асинхронно, то используем AsAsyncEnumerable.
Смотрим ссылку: Client-side async LINQ operators , не забываем подключать пакет.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / System.IO.File.Exists не срабатывает
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]