Nykyisessä projektissa tarvitaan tiedoston kokoa, jotta voi laskea kopioinnin tiedonsiirtonopeuden. Ongelmana on että tiedostot voivat olla hyvin suuria, jopa yli 2 gigan kokoisia, joten 32-bittinen koon selvitys (GetFileSize) ei sovi. Helpeissä mainittu GetFileSizeEx taas ei tunnu toimivan (tulee käännösvirhe). Mikä olisi paras tapa saada tuollaisen suuren tiedoston koko ?
Visual C++ 6.0: suuren tiedoston koko
6
925
Vastaukset
- juupajuujoo
"Helpeissä mainittu GetFileSizeEx taas ei tunnu toimivan (tulee käännösvirhe)"
kannattanee korjata se virhe. jos et osaa, pistä tänne se kyseinen koodinpätkä niin katotaan- The Real J.
Funktio:
__int64 CFileCopyTimerDlg::SizeOfFile(CString filename)
{
LARGE_INTEGER filedata;
HANDLE filehandle;
// Try to open the file for read access
filehandle = CreateFile(filename.operator LPCTSTR(),
GENERIC_READ,
0,
NULL,
0,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (filehandle == INVALID_HANDLE_VALUE)
return 0; // Failed, just return 0
// Get size of file to struct
if (GetFileSizeEx(filehandle, &filedata))
{
CloseHandle(filehandle);
return (__int64)(filedata.QuadPart);
}
CloseHandle(filehandle);
return 0;
}
Virheilmoitus:
FileCopyTimerDlg.cpp
C:\Data\FileCopyTimer\FileCopyTimerDlg.cpp(580) : error C2065: 'GetFileSizeEx' : undeclared identifier
Error executing cl.exe. - usdhfsidufh
The Real J. kirjoitti:
Funktio:
__int64 CFileCopyTimerDlg::SizeOfFile(CString filename)
{
LARGE_INTEGER filedata;
HANDLE filehandle;
// Try to open the file for read access
filehandle = CreateFile(filename.operator LPCTSTR(),
GENERIC_READ,
0,
NULL,
0,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (filehandle == INVALID_HANDLE_VALUE)
return 0; // Failed, just return 0
// Get size of file to struct
if (GetFileSizeEx(filehandle, &filedata))
{
CloseHandle(filehandle);
return (__int64)(filedata.QuadPart);
}
CloseHandle(filehandle);
return 0;
}
Virheilmoitus:
FileCopyTimerDlg.cpp
C:\Data\FileCopyTimer\FileCopyTimerDlg.cpp(580) : error C2065: 'GetFileSizeEx' : undeclared identifier
Error executing cl.exe.ongelma on tuo vc 6.0 joka on ikivanha eikä tue tuota funktiota. ei taida auttaa muu kun hommata uudempi versio. tai mikäli pelkän platform sdk:n pystyy 6.0:aan päivittämään niin teeppä se.
- sulla
The Real J. kirjoitti:
Funktio:
__int64 CFileCopyTimerDlg::SizeOfFile(CString filename)
{
LARGE_INTEGER filedata;
HANDLE filehandle;
// Try to open the file for read access
filehandle = CreateFile(filename.operator LPCTSTR(),
GENERIC_READ,
0,
NULL,
0,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (filehandle == INVALID_HANDLE_VALUE)
return 0; // Failed, just return 0
// Get size of file to struct
if (GetFileSizeEx(filehandle, &filedata))
{
CloseHandle(filehandle);
return (__int64)(filedata.QuadPart);
}
CloseHandle(filehandle);
return 0;
}
Virheilmoitus:
FileCopyTimerDlg.cpp
C:\Data\FileCopyTimer\FileCopyTimerDlg.cpp(580) : error C2065: 'GetFileSizeEx' : undeclared identifier
Error executing cl.exe.tiedostosi alussa rivi:
#include - tämä:
The Real J. kirjoitti:
Funktio:
__int64 CFileCopyTimerDlg::SizeOfFile(CString filename)
{
LARGE_INTEGER filedata;
HANDLE filehandle;
// Try to open the file for read access
filehandle = CreateFile(filename.operator LPCTSTR(),
GENERIC_READ,
0,
NULL,
0,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (filehandle == INVALID_HANDLE_VALUE)
return 0; // Failed, just return 0
// Get size of file to struct
if (GetFileSizeEx(filehandle, &filedata))
{
CloseHandle(filehandle);
return (__int64)(filedata.QuadPart);
}
CloseHandle(filehandle);
return 0;
}
Virheilmoitus:
FileCopyTimerDlg.cpp
C:\Data\FileCopyTimer\FileCopyTimerDlg.cpp(580) : error C2065: 'GetFileSizeEx' : undeclared identifier
Error executing cl.exe.Platform SDK, hae se microsoftilta.
- Kiikaroin
PDC2008, MicrosoftftPDC.com osoite josta en tiedä onko apua mutta päivityksiä löytyy ehkä laajennuksiakin Microsoftilta .
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Useita puukotettu Tampereella
Mikäs homma tämä nyt taas on? "Useaa henkilöä on puukotettu Tampereen keskustassa kauppakeskus Ratinan lähistöllä." ht1492852Asiakas iski kaupassa varastelua tehneen kanveesiin.
https://www.iltalehti.fi/kotimaa/a/33a85463-e4d5-45ed-8014-db51fe8079ec Oikein. Näin sitä pitää. Kyllä kaupoissa valtava3652030- 401757
Kuka rääkkää eläimiä Puolangalla?
Poliisi ampui toistakymmentä nälkiintynyttä eläintä Puolangalla Tilalta oli ollut karkuteillä lähes viisikymmentä nälkii351698Meneeköhän sulla
oikeasti pinnan alla yhtä huonosti kuin mulla? Tai yhtä huonosti mutta jollain eri tyylillä? Ei olisi pitänyt jättää sua321401Jos ei tiedä mitä toisesta haluaa
Älä missään nimessä anna mitään merkkejä kiinnostuksesta. Ole haluamatta mitään. Täytyy ajatella toistakin. Ei kukaan em941213- 541173
Muutama kysymys ja huomio hindulaisesta kulttuurista.
Vedakirjoituksia pidetään historiallisina teksteinä, ei siis "julistuksena" kuten esimerkiksi Raamattua, vaan kuten koul327949Jumala puhui minulle
Hän kertoi sinusta asioita, joiden takia jaksan, uskon ja luotan. Hän kuvaili sinua minulle ja pakahduin onnesta kuulles110938Annan meille mahdollisuuden
Olen avoimin mielin ja katson miten asiat etenevät. Mutta tällä kertaa sun on tehtävä eka siirto.Sen jälkeen olen täysil53782