Toon posts:

[C++] FILETIME

Pagina: 1
Acties:

Verwijderd

Topicstarter
FileTime Probleem

Ik ben een klein programmaatje aan het schrijven in c++ (Dev-C++) en ik heb een aantal dingen waar ik niet uit kom.
  • Ik vraag de 'LastWriteTime' op van een bestand en converteer het naar een leesbare tijd. Ik krijg de juiste data terug alleen een uur te vroeg?
  • Hoe kan ik ervoor zorgen dat als ik een bestand kopieer de 'LastWriteTime' hetzelfde blijft?
  • Hoe kan ik de global char's de juiste variabele grotes meegeven? Nu zijn ze standaard 10 maar ik zou graag bijv de string length (strlen) in plaats van 10 op willen geven. Is hier een mooie oplossing voor?
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <windows.h>
#include <iostream>

using namespace std;

// Globals
char jaar[10];
char maand[10];
char dag[10];
char uur[10];
char minuut[10];

int main(){

    const char *szFile = "bestand.jpg";
    HANDLE hFile;
                    
    hFile = CreateFile(szFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    
    // Bestand Openen                   
    if(hFile!=INVALID_HANDLE_VALUE){
                            
        FILETIME CreationTime, LastAccessTime, LastWriteTime;
                    
            if(GetFileTime(hFile, &CreationTime, &LastAccessTime, &LastWriteTime)){
                           
                SYSTEMTIME SystemTime;
                FileTimeToSystemTime(&LastWriteTime, &SystemTime);
                              
                sprintf(dag, "%02d/", SystemTime.wDay);
                sprintf(maand, "%02d/", SystemTime.wHour);
                sprintf(jaar, "%02d", SystemTime.wYear);
                sprintf(uur, " %02d:", SystemTime.wHour);
                sprintf(minuut, "%02d", SystemTime.wMinute);
            }

        CloseHandle(hFile);
    }
    
    // Output
    cout << dag << maand << jaar << uur << minuut << endl;
    
    system("pause");
    return 0;
}


Ik hoop dat ik een beetje duidelijk ben geweest :*)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 17:49

NMe

Quia Ego Sic Dico.

Verwijderd schreef op donderdag 16 februari 2006 @ 00:42:
• Ik vraag de 'LastWriteTime' op van een bestand en converteer het naar een leesbare tijd. Ik krijg de juiste data terug alleen een uur te vroeg?
Klinkt als iets dat met zomer- en wintertijd te maken zou kunnen hebben, of misschien zelfs met tijdzones. Zeker weten doe ik het niet.
• Hoe kan ik de global char's de juiste variabele grotes meegeven? Nu zijn ze standaard 10 maar ik zou graag bijv de string length (strlen) in plaats van 10 op willen geven. Is hier een mooie oplossing voor?
Als je dan toch char pointers gebruikt in plaats van het C++ string type, dan kun je toch zoiets doen?
C++:
1
2
3
char *dag;

dag = new char[strlen(variabele)];


Trouwens, met alleen vragen stellen en een lap code posten laat je natuurlijk niet echt zien wat je zelf al gedaan hebt om een oplossing te vinden. Waar heb je zelf al op gezocht? Wat heb je gevonden en geprobeerd?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 10-04 16:51

.oisyn

Moderator Devschuur®

Demotivational Speaker

[quote]Verwijderd schreef op donderdag 16 februari 2006 @ 00:42:
FileTime Probleem

Ik ben een klein programmaatje aan het schrijven in c++ (Dev-C++) en ik heb een aantal dingen waar ik niet uit kom.

• Ik vraag de 'LastWriteTime' op van een bestand en converteer het naar een leesbare tijd. Ik krijg de juiste data terug alleen een uur te vroeg?
Gebruik eerst FileTimeToLocalFileTime, daarna pas FileTimeToSystemTime

[q]• Hoe kan ik ervoor zorgen dat als ik een bestand kopieer de 'LastWriteTime' hetzelfde blijft?SetFileTime() aanroepen nadat je het bestand gekopiëerd hebt :)

[q]• Hoe kan ik de global char's de juiste variabele grotes meegeven? Nu zijn ze standaard 10 maar ik zou graag bijv de string length (strlen) in plaats van 10 op willen geven. Is hier een mooie oplossing voor?
Ze in een std::string opslaan, en std::ostringstream gebruiken om de getallen te converteren naar strings.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.