|
Вопрос # 5 981/ вопрос закрыт / |
|
Здравствуйте! Как программно узнать размер очень большого файла(свыше 5GB)? Стандартными методами, которые описаны в интернете значения получались отрицательными. Не я один, кто имеет такую проблему, и у них вопрос так и не решился. На одном форуме был ответ таков:
фрагмент кода
Только ничего я из этого не понял.... Помогите мне пожалуйста :)
 |
Вопрос задал: Кудя (статус: Посетитель)
Вопрос отправлен: 5 марта 2012, 20:33
Состояние вопроса: закрыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Скопипастил из delphi works:
function dwGetFileSize(Datei: String): Int64;
var
SR: _WIN32_FIND_DATA;
FileHandle: THandle;
const
MaxLongWord : Int64 = 4294967296;
begin
if FileExists(Datei)then begin
FileHandle:= FindFirstFile(PChar(Datei), SR);
result:= INT64((SR.nFileSizeHigh) * MaxLongWord + Sr.nFileSizeLow);
Windows.FindClose(FileHandle);
end else begin
result := -1;
end;
end;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 марта 2012, 21:55
|
Мини-форум вопроса
Всего сообщений: 12; последнее сообщение — 8 марта 2012, 21:00; участников в обсуждении: 4.
|
min@y™ (статус: Доктор наук), 6 марта 2012, 08:22 [#2]:
Цитата (Ерёмин А.А.):
только код не сишный
А какая разница? Один хрен, там сплошной WinAPI.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Кудя (статус: Посетитель), 6 марта 2012, 14:36 [#3]:
...Попытаюсь на C++ перевести. Код прост, но умножая на MaxLongWord программа сможет прочесть размер очень большого файла? No logic or im noob
Think Different. (c)
|
|
min@y™ (статус: Доктор наук), 6 марта 2012, 14:57 [#4]:
Попробуй и узнаешь.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Кудя (статус: Посетитель), 8 марта 2012, 12:46 [#5]:
Всё равно число то же, отрицательное =(
Think Different. (c)
|
|
min@y™ (статус: Доктор наук), 8 марта 2012, 13:01 [#6]:
Цитата (Кудя):
Всё равно число то же, отрицательное =(
Чему равно?
Эт чож за файл такой, если 63-й знаковый разряд равен 1? Я таких числов не знаю...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Кудя (статус: Посетитель), 8 марта 2012, 13:05 [#7]:
-1073741824
размер файла = 7 GB, 7516192768 Byte
Think Different. (c)
|
|
min@y™ (статус: Доктор наук), 8 марта 2012, 13:47 [#8]:
Переведи и то и другое в 16-ричную систему счисления и всё поймёшь. Я перевёл и всё понял.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Кудя (статус: Посетитель), 8 марта 2012, 14:05 [#9]:
...ща найду как это сделать
Think Different. (c)
|
|
Кудя (статус: Посетитель), 8 марта 2012, 15:03 [#10]:
7516192768 --- 1C0000000
-1073741824 --- FFC0000000
я перевёл, но ничего схожего кроме ноликов не вижу)
Think Different. (c)
|
|
min@y™ (статус: Доктор наук), 8 марта 2012, 16:13 [#11]:
Цитата (Кудя):
я перевёл, но ничего схожего кроме ноликов не вижу)
ДА НЕУЖЕЛИ???!!!111
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
bugmenot (статус: 3-ий класс), 8 марта 2012, 21:00 [#12]:
руками пусть работает
в двоичную пусть переводит, может дойдет
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
10 марта 2012, 23:07: Вопрос закрыт (решение принял автор вопроса — Кудя): Не помогли....
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|