Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / The specified path, file name, or both are too long / 7 сообщений из 7, страница 1 из 1
01.08.2013, 18:48
    #38352055
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The specified path, file name, or both are too long
Как бороться с этой эксцепцией?

Функция выбирает все файлы из указанной (сетевой \\...) директории + субдиректории и на одной директории нарвался на такую фигню

Код: c#
1.
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.



Как быть?
...
Рейтинг: 0 / 0
01.08.2013, 19:12
    #38352082
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The specified path, file name, or both are too long
Winnipuh, если есть возможность, то замапь сетевую папку на имя диска. Это может оказаться достаточным чтобы длина пути уложилась в 260 символов. Если так сделать нельзя, то единственный выход это использование функций WinAPI т.к. через них можно работать с именами длиной до 32000 символов. Советую серию статей Long Paths in .NET .
...
Рейтинг: 0 / 0
01.08.2013, 19:22
    #38352096
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The specified path, file name, or both are too long
спасибо, но мапить не получится.
Это функция в SQLCLR, и пути подсовываются из таблицы, мне-то и надо FileInfo, т.е. выбрать имена файлов с размерами.
...
Рейтинг: 0 / 0
01.08.2013, 19:35
    #38352112
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The specified path, file name, or both are too long
Winnipuh, а вне SQL Server это сделать нельзя? Если нет, то тогда видимо только через WinAPI что правда потребует UNSAFE уровень защиты. Еще можно на форуме по SQL Server вопрос задать. Может в T-SQL есть какие-то средства работы с файловой системой.
...
Рейтинг: 0 / 0
01.08.2013, 19:59
    #38352127
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The specified path, file name, or both are too long
bazileWinnipuh, а вне SQL Server это сделать нельзя? Если нет, то тогда видимо только через WinAPI что правда потребует UNSAFE уровень защиты. Еще можно на форуме по SQL Server вопрос задать. Может в T-SQL есть какие-то средства работы с файловой системой.

у меня свои заморочки, мне надо в SQLCLR, буду переделывать с использованием winapi
...
Рейтинг: 0 / 0
02.08.2013, 13:48
    #38352912
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The specified path, file name, or both are too long
Взял список файлов с того компьютера, где появилась проблема, там есть десяток файлов с длиной имени 263 и 261 символ,
все имена файлов UNC, т.е. начинаются с \\server\folder1\....\file1 и т.д.

Пытаюсь смоделировать ситуацию на своем компьютере.
Назвал файл словом в 300 символов - нету ошибки в таком коде

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
List<string> results = new List<string>();
            try
            {
                string stringFileName = "";
                long lFileSize = 0;
                int nFileSize = 0;

                string[] stringFiles = Directory.GetFiles(strDirectoryName.ToString(), "*.*", bSubDirectories ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);

                foreach (string stringFile in stringFiles)
                {
                    stringFileName = stringFile;
                    FileInfo objFileSize = new FileInfo(stringFileName);
                    lFileSize = objFileSize.Length;
                    nFileSize = (int)(lFileSize / 1000);
                    results.Add(stringFileName);
                }
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }




а в SQLCLR это же код дает ошибку.


Как смоделировать ошибку?
...
Рейтинг: 0 / 0
02.08.2013, 17:28
    #38353418
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
The specified path, file name, or both are too long
Winnipuh, расшарь эту папку и обращайся к своему компьютеру по сетевому имени
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / The specified path, file name, or both are too long / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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