반응형
파일이 존재하는지 Win32 프로그램을 사용하지 않는지 어떻게 확인할 수 있습니까?
파일이 존재하는지 Win32 프로그램을 사용하지 않는지 어떻게 확인할 수 있습니까? Windows Mobile 앱에서 일하고 있습니다.
전화 할 수 있습니다 FindFirstFile
.
다음은 방금 확인한 샘플입니다.
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
int fileExists(TCHAR * file)
{
WIN32_FIND_DATA FindFileData;
HANDLE handle = FindFirstFile(file, &FindFileData) ;
int found = handle != INVALID_HANDLE_VALUE;
if(found)
{
//FindClose(&handle); this will crash
FindClose(handle);
}
return found;
}
void _tmain(int argc, TCHAR *argv[])
{
if( argc != 2 )
{
_tprintf(TEXT("Usage: %s [target_file]\n"), argv[0]);
return;
}
_tprintf (TEXT("Looking for file is %s\n"), argv[1]);
if (fileExists(argv[1]))
{
_tprintf (TEXT("File %s exists\n"), argv[1]);
}
else
{
_tprintf (TEXT("File %s doesn't exist\n"), argv[1]);
}
}
GetFileAttributes
파일 시스템 객체가 존재하고 디렉토리가 아닌지 확인하는 데 사용 합니다.
BOOL FileExists(LPCTSTR szPath)
{
DWORD dwAttrib = GetFileAttributes(szPath);
return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
!(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
에서 복사 된 디렉토리는 C의 Windows에 있는지 확인할 방법은?
기능을 사용할 수 있습니다 GetFileAttributes
. 0xFFFFFFFF
파일이 없으면 반환 합니다.
간단히 :
#include <io.h>
if(_access(path, 0) == 0)
... // file exists
다른 옵션 : 'PathFileExists' .
그러나 나는 아마도 GetFileAttributes
.
파일을 열어 볼 수 있습니다. 실패하면 대부분의 시간에 존재하지 않음을 의미합니다.
더 일반적인 비 Windows 방법 :
static bool FileExists(const char *path)
{
FILE *fp;
fpos_t fsize = 0;
if ( !fopen_s(&fp, path, "r") )
{
fseek(fp, 0, SEEK_END);
fgetpos(fp, &fsize);
fclose(fp);
}
return fsize > 0;
}
반응형
'code' 카테고리의 다른 글
Android Studio에서 줄 번호를 표시하는 방법 (0) | 2020.11.09 |
---|---|
Xcode에서 "파생 된 데이터를 삭제"하는 방법은 무엇입니까? (0) | 2020.11.09 |
React Native ERROR Packager가 포트 8081에서 수신 할 수 없습니다. (0) | 2020.11.09 |
jQuery UI 자동 완성 너비가 올바르게 설정되지 않음 (0) | 2020.11.09 |
handlebars.js 템플릿을 사용하여 배열의 마지막 항목에 조건부 (0) | 2020.11.09 |