4 Ocak 2015 Pazar

SetFileTime


#include <windows.h>
#include <tchar.h>
#include <stdio.h>



BOOL SetFileToCurrentTime(HANDLE hFile)
{
    FILETIME ftFileTime;
    SYSTEMTIME st;
    BOOL bIsChanged;

    GetSystemTime(&st);              // Åžimdiki Sistem Zamanını Al
    SystemTimeToFileTime(&st, &ftFileTime);  // Åžimdiki sistem zamanını "File Time" formatına çevir.
    bIsChanged = SetFileTime(hFile, //DeÄŸiÅŸtirilecek dosyaya ait handle
&ftFileTime,   //lpCreationTime
         &ftFileTime,   //lpLastAccessTime
&ftFileTime    //lpLastWriteTime
        );  

    return bIsChanged;
}

BOOL GetLastWriteTime(HANDLE hFile, int FileProcess)    //opsiyonel, -->dosyaya ait zamanları gösterme.
{
    FILETIME ftCreate, ftAccess, ftWrite;
    SYSTEMTIME stUTC, stLocal;

    // Dosyaya ait olusturmaison eriÅŸim ve son deÄŸiÅŸtirme zamanlarını geri döndür
    if (!GetFileTime(hFile, &ftCreate/*olusturma*/, &ftAccess/*son erisim*/, &ftWrite/*son degistirme*/))
        return FALSE;

switch (FileProcess)
{

case 1:
    //dosyanın olusturma tarihini bugunun tarihi olarak goster...
    FileTimeToSystemTime(&ftCreate, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
printf("olusturulma saati--> %d : %d : %d : %d \n",stLocal.wHour,stLocal.wMinute,stLocal.wSecond, stLocal.wMilliseconds);
printf("olusturulma tarihi--> %d.%d.%d\n",stLocal.wDay,stLocal.wMonth,stLocal.wYear);
break;
case 2:
/////////////////////////////////////////////////////////
//dosyanın son erisim tarihini bugunun tarihi olarak goster...
    FileTimeToSystemTime(&ftAccess, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
printf("son erisim saati--> %d : %d : %d : %d \n",stLocal.wHour,stLocal.wMinute,stLocal.wSecond, stLocal.wMilliseconds);
printf("son erisim tarihi--> %d.%d.%d\n",stLocal.wDay,stLocal.wMonth,stLocal.wYear);
break;
case 3:
/////////////////////////////////////////////////////////
//dosyanın son değiştirme tarihini bugunun tarihi olarak goster...
    FileTimeToSystemTime(&ftWrite, &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
printf("son degistirme saati--> %d : %d : %d : %d \n",stLocal.wHour,stLocal.wMinute,stLocal.wSecond, stLocal.wMilliseconds);
printf("son degistirme tarihi--> %d.%d.%d\n",stLocal.wDay,stLocal.wMonth,stLocal.wYear);
/////////////////////////////////////////////////////////
break;

default:
printf("Yanlis bir secim yaptiniz");
break;
}
return true;
}

int main()
{
    HANDLE hFile;

#if defined _UNICODE
hFile = CreateFile(L"D:\indir.jpg", GENERIC_WRITE, 0, 0,
                           OPEN_EXISTING,
                           FILE_ATTRIBUTE_NORMAL,0);
#elif defined _MBCS
hFile = CreateFile("D:\indir.jpg", GENERIC_WRITE, 0, 0,
                           OPEN_EXISTING,
                           FILE_ATTRIBUTE_NORMAL,0);
#endif

    if(hFile == INVALID_HANDLE_VALUE)
    {
printf("Dosya olusturma basarisiz... Mesaj : %d\n", GetLastError());
        return 0;
    }
else
{
printf("\nDosyaya basari ile erisim saglandi...");
}


int iTimeChoice;
printf("\n****DOSYAYA AIT ZAMANLARI GOSTER****\n Olusturma Tarihi -->1 \n Son Erisim Tarihi -->2 \n Degistirme Tarihi -->3");
scanf("%d",&iTimeChoice);
GetLastWriteTime( hFile,iTimeChoice);

if(SetFileToCurrentTime(hFile))
{
printf("\n\nDosya zamanlari basari ile degistirildi\n");
}
else
{
wprintf(L"\n\nDosya zamanlari degistirilemedi\n");
}

#if defined _MBCS
TCHAR A[]=_T("EWtFbb\0koko");
printf("karakter --->>%s \n\n\n",A);
LPTSTR a;
#endif



CloseHandle(hFile);


}

Hiç yorum yok:

Yorum Gönder