Как удалить несколько файлов в C использование подстановочных знаков?

Есть ли любой путь в C для удаления (использование remove()) несколько файлов с помощью a * (подстановочные знаки)? У меня есть ряд файлов, которые все запускают с Индекса. Например: Index1.txt, Index-39.txt и т.д. Они все запускают с Индекса, но я не знаю то, за чем следует текст. Существуют также другие файлы в том же каталоге, настолько удаляющем все файлы, не будет работать.

Я знаю, что можно прочитать каталог, выполнить итерации каждого имени файла, считать первые 5 символов, выдержать сравнение и если это соответствует, затем удаляют, но, там более легкий путь (это - то, что я в настоящее время делаю между прочим)?

Это - стандартный C, так как код работает на Linux и Windows.

10
задан tshepang 12 August 2014 в 18:42
поделиться

3 ответа

Как вы указываете, вы можете использовать Diropen, Dirread, RirecoSe для доступа к содержимому каталога, функцию собственного (или преобразовать подстановочные знаки в регулярное выражение и использовать библиотеку REGEX), чтобы соответствовать, и разбить, чтобы удалить.

Не существует стандартного способа сделать это проще. Там, вероятно, будут библиотеки, но они не будут более эффективными, чем то, что вы делаете. Обычно функция поиска файлов делает обратный вызов, где вы предоставляете совпадение и частью кода. Все, что вы будете экономить, это цикл.

10
ответ дан 3 December 2019 в 21:59
поделиться

Если вы не против быть конкретными на платформе, вы можете использовать систему () Call:

system("del index*.txt"); // DOS
system("rm index*.txt"); // unix

здесь - некоторая документация на системе () Вызов, который является частью стандартной библиотеки C (CSTDLIB).

6
ответ дан 3 December 2019 в 21:59
поделиться

Это все программа делает? Если это так, пусть командная строка выполняет расширение подстановки для вас:

int main(int argc, char* argv[])
{
   while (argc--)
     remove(argv[argc]);
}

в Windows, вам нужно связать с «SetArgV.Obj», включенным в каталог VC Standard Lib.

0
ответ дан 3 December 2019 в 21:59
поделиться
Другие вопросы по тегам:

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