特定のファイルが指定された場所に存在するかどうかを確認します。私はそのために複数の解決策を試してきましたが、どれも正しく動作していないようです。WINAPI:ファイル存在チェックに失敗しました
ファイルが指定された場所に存在することは間違いありません。
実行可能ファイルが管理者として実行されているため、適切な権限を持っています。私が使用し
コード:
#include <io.h>
#include <string>
#include <Shlwapi.h>
std::string str = "C:\WINDOWS\System32\iluminated.dll";
unsigned long attrib = GetFileAttributes(str.c_str());
bool exists1 = (attrib != INVALID_FILE_ATTRIBUTES &&
!(attrib & FILE_ATTRIBUTE_DIRECTORY)) &&
GetLastError() != ERROR_FILE_NOT_FOUND; // false
bool exists2 = (_access(str.c_str(), 0) != -1); // false
bool exists3 = PathFileExists(str.c_str()) != 0; // false
を私が間違ってやっているものはありますか?あなたは、文字列内の単一のバックスラッシュを使用する場合は、コマンド記号として解釈されているので
あなたは、少なくともコンパイラの警告を取得できませんでしたか? '警告C4129: 'W':認識できない文字エスケープシーケンス'? –
@MichaelWalzでした。しかし二重スラッシュは警告を消した。 –
警告は実際には多くの場合エラーです。 –