Есть ли любой путь в C для удаления (использование remove()
) несколько файлов с помощью a *
(подстановочные знаки)? У меня есть ряд файлов, которые все запускают с Индекса. Например: Index1.txt
, Index-39.txt
и т.д. Они все запускают с Индекса, но я не знаю то, за чем следует текст. Существуют также другие файлы в том же каталоге, настолько удаляющем все файлы, не будет работать.
Я знаю, что можно прочитать каталог, выполнить итерации каждого имени файла, считать первые 5 символов, выдержать сравнение и если это соответствует, затем удаляют, но, там более легкий путь (это - то, что я в настоящее время делаю между прочим)?
Это - стандартный C, так как код работает на Linux и Windows.
Как вы указываете, вы можете использовать Diropen, Dirread, RirecoSe для доступа к содержимому каталога, функцию собственного (или преобразовать подстановочные знаки в регулярное выражение и использовать библиотеку REGEX), чтобы соответствовать, и разбить, чтобы удалить.
Не существует стандартного способа сделать это проще. Там, вероятно, будут библиотеки, но они не будут более эффективными, чем то, что вы делаете. Обычно функция поиска файлов делает обратный вызов, где вы предоставляете совпадение и частью кода. Все, что вы будете экономить, это цикл.
Если вы не против быть конкретными на платформе, вы можете использовать систему ()
Call:
system("del index*.txt"); // DOS
system("rm index*.txt"); // unix
здесь - некоторая документация на системе ()
Вызов, который является частью стандартной библиотеки C (CSTDLIB).
Это все программа делает? Если это так, пусть командная строка выполняет расширение подстановки для вас:
int main(int argc, char* argv[])
{
while (argc--)
remove(argv[argc]);
}
в Windows, вам нужно связать с «SetArgV.Obj», включенным в каталог VC Standard Lib.