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
915
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
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225134- 254308
- 272461
- 342234
- 371998
- 151908
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191587- 121521
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons211247Kerranki asiat oikein
Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa101164