Как удалить файл с помощью функции DeleteFile() в C++?
Я сто лет не писал на плюсах, но даже мне очевидно, что файла нет, т.к. ищите файлы вы по абсолютному пути, а удаляете только по имени и в текущем каталоге таких файлов нет.
Задача: удалить из каталога все файлы в названии которых есть символ "~" и размер которых 0.А так?#include<iostream>
#include<string>
#include<filesystem>
#include<vector>

// #include<windows.h> // DeleteFile ...

using namespace std;
using namespace experimental::filesystem;

auto pred = [](const auto& entry)
{
  return !is_directory(entry.path()) &&
         entry.path().filename().string().find("~") != string::npos &&
         file_size(entry.path()) == 0;
};

auto getFiles_if(const string& dir, decltype(pred) p)
{
  vector<directory_entry> result;

  if(!exists(dir))
  {
    cerr << "error: " << dir << "does not exist!";
    return result;
  }
  copy_if(directory_iterator(dir), {}, back_inserter(result), p);

  if(result.empty())
  {
    cout << "files not found\n";
  }

  return result;
}

int main()
{
  string dir = "D:\\temp";

  for(const auto& pf : getFiles_if(dir, pred))
  {
    string file = pf.path().string();
    cout << "delete file? " << file << " (y/n): ";
    if(char c = 0; (cin >> c), c == 'y')
    {
      if(remove(pf.path())) // Всего лишь заменить на DeleteFile(file.c_str());
      {
        cout << "delete: " << file << "\n";
      }
      // ...
    }
    else
    {
      cout << "skip: " << file << "\n";
    }
  }

  system("pause");
}