Получите Файлы в каталоге

Сравнение со значением эпсилона - то, что большинство людей делает (даже в игровом программировании).

необходимо изменить реализацию немного хотя:

bool AreSame(double a, double b)
{
    return fabs(a - b) < EPSILON;
}

Редактирование: Christer добавил стопку большой информации об этой теме на недавнее сообщение в блоге . Наслаждаться.

47
задан Graviton 2 April 2015 в 02:15
поделиться

2 ответа

Есть много способов. Более старый способ - scandir , но DirectoryIterator , вероятно, лучший способ.

Также существует readdir (для использования с opendir ) и glob .

Вот несколько примеров того, как использовать каждый из них для печати всех файлов в текущем каталоге:

DirectoryIterator использование: (рекомендуется)

foreach (new DirectoryIterator('.') as $file) {
    if($file->isDot()) continue;
    print $file->getFilename() . '<br>';
}

scandir использование:

77
ответ дан 26 November 2019 в 19:41
поделиться

Поддержка файлов .NET осуществляется достаточно быстро (сравнимо с собственными функциями Win32). Несколько вариантов, которые могут помочь вам повысить производительность:

  1. Если чтение / запись выполняется последовательно, помогите диспетчеру кэширования, применив соответствующую стратегию - предоставьте RandomAccess или SequentalScan при создании экземпляра FileStream
  2. . Рассмотрите возможность использования больший буфер памяти для хранения данных чтения
  3. Если вы копируете много маленьких файлов, вы можете сначала прочитать много файлов в буфер памяти одновременно (см. 2), а затем записать файлы на диск
  4. Если исходный и целевой потоки расположены в разных местах (то есть на разных жестких дисках,
0
ответ дан 26 November 2019 в 19:41
поделиться
Другие вопросы по тегам:

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