|
kty1104 님이 쓰신 글 :
: Intotheblue 님이 쓰신 글 :
: : 적어주신 예제는 vc++ 쪽 코드입니다.
: : VC++이외에 컴파일러에선..컴파일이 안됩니다..
: : 당연히 빌더에서도 안되고요..
: :
: : 비슷한 빌더쪽 함수는 findfirst 랑 findnext 가 있습니다.
: : 각 함수에 자세한것은 헬프를 보세요..
: :
: :
: : kty1104 님이 쓰신 글 :
: : : 안녕하세요 왕초보 kty1104입니다 제가
: : :
: : : #include <stdio.h>
: : : #include <stdlib.h>
: : :
: : : #define MAX_COLS 32768
: : :
: : : int main(){
: : :
: : : char a[128];
: : : scanf("%s", a);
: : : FILE *in;
: : : char s[MAX_COLS];
: : :
: : : if((in=fopen(a, "rt"))==NULL){
: : : fputs("CAN NOT OPEN Input File\n", stderr);
: : : system("PAUSE");
: : : exit(1);
: : :
: : : }
: : :
: : : while (fgets(s, MAX_COLS, in) != NULL){
: : : printf(s);
: : : }
: : :
: : : fcloseall();
: : : system("PAUSE");
: : : return 0;
: : :
: : : }
: : :
: : : 여기까지 짜서 어떻게하면 파일의수정된 날짜와 만든날짜를 알수 있을지 질문을 올렸는데 답변을 누가 해주셨습니다
: : :
: : :
: : : CString strSetFileHandle="c:\test.txt";//file의 경로
: : :
: : : WIN32_FIND_DATA Root;
: : :
: : : HANDLE hFile;
: : :
: : : hFile = FindFirstFile((LPCTSTR)strSetFileHandle, &Root);
: : :
: : :
: : :
: : : __int64 nFileSize = Root.nFileSizeLow;
: : :
: : :
: : :
: : :
: : :
: : :
: : :
: : : typedef struct _WIN32_FIND_DATA { // wfd
: : : DWORD dwFileAttributes;
: : : FILETIME ftCreationTime;
: : : FILETIME ftLastAccessTime;
: : : FILETIME ftLastWriteTime;
: : : DWORD nFileSizeHigh;
: : : DWORD nFileSizeLow;
: : : DWORD dwReserved0;
: : : DWORD dwReserved1;
: : : TCHAR cFileName[ MAX_PATH ];
: : : TCHAR cAlternateFileName[ 14 ];
: : : } WIN32_FIND_DATA;
: : :
: : :
: : : 그런데 왕초보인 저에게 이걸 어떻게 소스에 집어 넣으라는건지 잘 모르겠더군요
: : :
: : : 아시는분은 도움좀 부탁 바랍니다 ㅎ
: : :
: : :
: : :
: : : 물론 코딩까지 다 해달라는 뜻은 아니구여 제가 컴파일하기까지 왕초보인제가 실수해서 빠뜨릴만한걸 알려주시면 감사하겠습니다
: : : 예를들어서 인클루드 파일을 빠뜨렷다든지 이런거요 아니면 네이버에 검색할만한 검색어만 알려주셔도 감지덕지 하겠습니다
: : : CString이 선언되지 않은 식별자라고 나오거나
: : : ;가 strsetfilehandle앞에 없습니다 라든지
: : : strSetFileHandle 선언되지 않은 식별자입니다
: : : 이런식으로 나오기에 CString을 네이버에 검색해봤는데 답을 얻질 못했거든요
: : :
: : : 물론 컴파일되는 소스를 짜달라고 하는건 아니구요 ^^; 왕초보인 저에게 구원의 손길을 좀 주세요~
:
: 저기 죄송한데 여기에 VC++글은 올리면 아니되는건가요? 제가 VC++를 쓰고 있거든요 ;ㅂ;
: 혹시 VC++관련글을 올려도 된다면 FindFirstFileW매개변수2를 WIN32_FIND_DATA*에서 LPWIN32_FIND_DATAW로 변환할수 없습니다라고 나올때는 어떻게 해야 할까요? 소스는 여기있습니다
: #include <turboc.h>
: #include <windows.h>
: #include <tchar.h>
:
:
:
: int main(){
: typedef struct _WIN32_FIND_DATA { // wfd
: DWORD dwFileAttributes;
: FILETIME ftCreationTime;
: FILETIME ftLastAccessTime; ///////////////<-=== 이부분이요
: FILETIME ftLastWriteTime;
: DWORD nFileSizeHigh;
: DWORD nFileSizeLow;
: DWORD dwReserved0;
: DWORD dwReserved1;
: TCHAR cFileName[ MAX_PATH ];
: TCHAR cAlternateFileName[ 14 ];
: } WIN32_FIND_DATA;
:
: const char * strSetFileHandle="c:\test.txt";//file의 경로
:
: WIN32_FIND_DATA Root;
:
: HANDLE hFile;
:
: hFile = FindFirstFile((LPCTSTR)strSetFileHandle, &Root);
: __int64 nFileSize = Root.nFileSizeLow;
: }
WIN32_FIND_DATA 는 이미 windows.h에 선언 되어 있으므로,
님의 소스에서는 없애야 합니다.
님의 소스에 재정의를 했기 때문에 윈도우즈에 정의한 형과 다른 형으로 인식을 한 것입니다.
만일 없애기 싫다면 이건
hFile = FindFirstFile((LPCTSTR)strSetFileHandle, (WIN32_FIND_DATAW*)&Root);
식으로 강제 캐스팅을 하면 됩니다.
LPWIN32_FIND_DATAW 라고 나온 것은 현재 프로그래밍 모드가 Unicode 문자열 모드라는 뜻이므로
이를 감안하여 코딩해야 합니다.
그리고
FILETIME ftLastAccessTime;
에서 날짜를 추출하면 되는데, 이건 어렵지 않으니 자료를 찾아 보시기 바랍니다.
VC에 관한 자료는 devpia.com 에 가서 검색하면 됩니다.
그럼.
|