Почему делает DirectoryInfo. GetFiles () соответствуют файлам, которые не соответствуют маске?

Часто задаваемые вопросы по JavaMail содержат советы по устранению проблем с подключением .

Скорее всего, есть брандмауэр, не позволяющий подключиться напрямую. В FAQ по JavaMAil также описывается, как подключаться через прокси-сервер .

7
задан scottm 15 June 2009 в 21:07
поделиться

4 ответа

msdn заявляет, что

"Поскольку этот метод проверяет имена файлов с именем файла 8.3 формат и формат длинного имени файла, шаблон поиска, похожий на « * 1 * .txt » может вернуть неожиданные имена файлов. Для Например, используя шаблон поиска « * 1 * .txt » вернется « longfilename.txt », потому что эквивалентный 8.3 формат имени файла будет быть " longf ~ 1.txt ". "

Может ли это быть причиной?

14
ответ дан 6 December 2019 в 07:08
поделиться

GetFiles будет искать длинное имя файла и короткое имя файла ... оно не соответствует коротким именам файлов, не так ли?

1
ответ дан 6 December 2019 в 07:08
поделиться

Я не могу воспроизвести это ни из командной строки, ни из тестового приложения:

c:\Users\Jon\Test>echo > 20070618_00806.bak

c:\Users\Jon\Test>echo > 2007081700806.bak

c:\Users\Jon\Test>dir 200810*
 Volume in drive C is OS
 Volume Serial Number is B860-7E20

 Directory of c:\Users\Jon\Test

File Not Found

И приложения C #:

using System;
using System.IO;

class Test
{
    static void Main()
    {
        foreach (var file in new DirectoryInfo(".").GetFiles("200810*"))
        {
            Console.WriteLine(file);
        }
    }
}

(Это не печатает никаких результатов.)

Возможно, где-то есть настройки ОС, которые имеют значение ... какую ОС вы используете? (Я'

4
ответ дан 6 December 2019 в 07:08
поделиться

Попробуйте это из командной строки:

dir /x 200810*

"/ x" заставит его показывать короткие имена файлов, а также длинные имена файлов. Это позволит вам увидеть, действительно ли короткое имя файла начинается с "200810".

6
ответ дан 6 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: