Wie man die Datei Mal in C++
ich habe ein problem bei der Datei Zeitpunkt der Erstellung.. könnte jemand wissen, wie man die DATEI??
Bekam ich einen code, der bekommt den Dateinamen von einem bestimmten Verzeichnis mein problem ist, ich weiß nicht, wie man die filetimes auf jede Datei in dem Verzeichnis...
hier ist mein code:
#include <vector>
#include <string>
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <time.h>
#include <exception>
#include <WinBase.h>
using namespace std;
int ifException(string directory) throw()
{
DWORD returnvalue;
returnvalue = GetFileAttributes(directory.c_str());
if(returnvalue == ((DWORD)-1))
{
return 0;
}
else
{
return 1;
}
}
vector <string> GetPath(string path)
{
char directory[9999];
vector <string> filelist;
string buffer;
strcpy_s(directory,path.c_str());
BOOL checker;
try
{
ifException(directory);
}catch(int i)
{
if (i==0)
{
_getch();
exit(1);
}
}
buffer = findFileData.cFileName;
filelist.push_back(buffer);
checker = FindNextFile(hFind, &findFileData);
while(checker)
{
if(checker == 0)
{
filelist.resize(filelist.size());
return filelist;
}
checker = FindNextFile(hFind, &findFileData);
buffer = findFileData.cFileName;
filelist.push_back(buffer);;//save file list in vector
}
return filelist;
}
int main()
{
string path;
path="C:\\Documents and Settings\\OJT\\My Documents\\game\\FSNPC\\*.*";//the directory
vector <string> handler;
handler = GetPath(path);
for (unsigned i=1;i<handler.size()-1;i++)
{
cout << handler[i]<<endl;//print out the vector
}
_getch();
}
auf welcher Plattform bist du?
windows-Plattform
windows-Plattform
InformationsquelleAutor Andro Miguel M. Bondoc | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, windows-API hat
GetFileTime
Funktion, schauen Sie, ich habe nicht gesehen, dass windows für eine Weile.UPDATE: Schauen Sie hier und hier
Ausgang? warum erwarten Sie es, um die Ausgabe etwas?
ich muss sparen, filetime, um eine bestimmte variable.. wie könnte ich das dann machen?? sorry bin neu in C++
Der zweite link in meiner Antwort, liefert Ihnen mit einem Beispiel.
InformationsquelleAutor Michael Krelin - hacker
Dies ist für *nix-Plattformen.
InformationsquelleAutor CyberDem0n
Können Sie nicht. AFAIK der Zeitpunkt der Erstellung wird nicht gespeichert. Zumindest auf linux.
Sie können fstat, um die letzten modififed oder Zeit des letzten Zugriffs Zeit und eine weitere Zeitstempel, kann ich mich nicht erinnern. Aber der Zeitpunkt der Erstellung wird nicht gespeichert.
Vielleicht dein OS kann Ihnen den Zeitpunkt der Erstellung. Aber dafür muss man genauer sein.
Er Tat es nicht erwähnen, wenn er veröffentlicht die erste Zeit.
Ich wollte nicht meckern, ich kommentierte 😉
InformationsquelleAutor mkaes
Da wir jetzt wissen, dass Sie auf Windows, suchen Sie nach den
GetFileTime
- Funktion, die ermöglicht das abrufen der Erstellung, des letzten Zugriffs oder der letzten änderung Datum und Uhrzeit für eine Datei oder ein Verzeichnis. Es tut dies, indem Sie dieFILETIME
- Struktur(s) angegeben als Argumente mit der Zeit, die Werte.Da alles, was Sie interessiert, ist der Zeitpunkt der Erstellung, können Sie ignorieren die letzten beiden Parameter. Sie sind optional. Sie finden ein vollständiges Beispiel zum abrufen des letzten schreibzugriffs auf eine Datei hier auf der MSDN-Website.
Sobald man den
FILETIME
Struktur ausgefüllt mit den entsprechenden Wert, werden Sie wahrscheinlich wollen, verwenden Sie dieFileTimeToSystemTime
- Funktion zu konvertieren, dass der Wert in einem display-format.InformationsquelleAutor Cody Gray
Windows, sagen Sie? Verwenden GetFileTime. Du wirst dann wahrscheinlich verwenden wollen FileTimeToSystemTime, um es ein wenig überschaubarer (
GetFileTime
effektiv nur gibt eine 64-bit-Zeitstempel relativ zum 01. Januar 1601,FileTimeToSystemTime
konvertiert, die auf eine Struktur mit den Feldern für die Stunden, Minuten, Tag, Monat, etc...).InformationsquelleAutor Mac