Название: свободное место на диске Отправлено: Firefox от Февраль 27, 2010, 08:51 Мне надо посчитать свободное место надиске. написала такую функцию. но непонимаю почему она возвращает всё время false.
Код: QString str="C:"; Название: Re: свободное место на диске Отправлено: Rcus от Февраль 27, 2010, 10:15 Это серьезно? Вы преобразуете указатель на объект к POD типу и удивляетесь тому что не работает?
const ushort * QString::utf16 () const /*hint-hint*/ Название: Re: свободное место на диске Отправлено: Firefox от Февраль 27, 2010, 12:02 спасибо))
Код: LPCWSTR=L"C:" ещё такой вопрос у меня выходит в формате DWORD FreeBytesAvailable 14 TotalNumberOfByte 2785591296 TotalNumbetOfFreeBytes 394878976 перевела числа домножив на 8 в байты 2785591296*8=22284730368 сравнила с общей ёмкостью диска С в байтах(смотрела в свойствах диска С) она 62915133440.не сходиться.... чего-то я не догоняю почему. Название: Re: свободное место на диске Отправлено: Пантер от Февраль 27, 2010, 12:49 Ты умножила байты на 8 и получила байты? Интересно...
Название: Re: свободное место на диске Отправлено: Rcus от Февраль 27, 2010, 12:52 Ну дык кто msdn то читать будет?
Цитировать typedef union _ULARGE_INTEGER { Буквально в два перехода находится.struct { DWORD LowPart; DWORD HighPart; } ; struct { DWORD LowPart; DWORD HighPart; } u; ULONGLONG QuadPart; } ULARGE_INTEGER, *PULARGE_INTEGER; Название: Re: свободное место на диске Отправлено: Firefox от Февраль 27, 2010, 15:39 если я правильно понимаю, то DWORD это 64 бита или 8 байт, а у меня результат в DWORD возвращается и надо, чтоб в байты перевести, умножить на 8 и ещё умножить на 2. но всё равно числа не сходяться, получется что ёмкость диска 44569460688. число отличается.
если мои суждения не правильны, то подскажите чайнику, как точно получить(перевести) результат по ёмкости диска и свободного места на нём в байтах. Название: Re: свободное место на диске Отправлено: BRE от Февраль 27, 2010, 16:06 Код
Название: Re: свободное место на диске Отправлено: pastor от Февраль 27, 2010, 16:07 Цитировать The ULARGE_INTEGER structure is actually a union. If your compiler has built-in support for 64-bit integers, use the QuadPart member to store the 64-bit integer. Otherwise, use the LowPart and HighPart members to store the 64-bit integer. Название: Re: свободное место на диске Отправлено: lit-uriy от Февраль 27, 2010, 20:16 >>если я правильно понимаю, то DWORD это 64 бита или 8 байт,
>>а у меня результат в DWORD возвращается и надо, чтоб в байты перевести, Возвращаемое значение и есть размер в байтах, но чтобы можно было вернуть значение больше 256, например 1024, нужно иметь больше 8 бит. Другими словами, DWORD умножать на 8 не нужно. Для наглядности посмотри на десятичные числа: 256 и 1024 Первое занимает 3 десятичных разряда, а второе уже 4. Название: Re: свободное место на диске Отправлено: Firefox от Март 01, 2010, 11:15 Спасибо всем большое :-*
Название: Re: свободное место на диске Отправлено: niXman от Март 02, 2010, 12:17 Код
Название: Re: свободное место на диске Отправлено: ритт от Март 02, 2010, 14:23 подключать буст ради обёртки над винапишным вызовом? )
Название: Re: свободное место на диске Отправлено: niXman от Март 02, 2010, 18:27 Константин, ну кому-то может и нужно подключать, а у кого-то это основа всех программ. ;)
Название: Re: свободное место на диске Отправлено: Firefox от Март 03, 2010, 15:15 мне буст не надо подключать, всё и так включено))
у меня такой вопросик. дело в том, что диск размер которого мне надо узнать находиться на другом компе. и я формирую путь таким способом Код: QString ip_addr; Название: Re: свободное место на диске Отправлено: BRE от Март 03, 2010, 16:00 у меня такой вопросик. дело в том, что диск размер которого мне надо узнать находиться на другом компе. и я формирую путь таким способом Посмотри на первый ответ в этой тем.Код: QString ip_addr; С указателями так работать нельзя. Лучше для формирования строки использовать QString, а потом преобразовывать ее к LPCWSTR, как подсказал Rcus. Название: Re: свободное место на диске Отправлено: Пантер от Март 03, 2010, 17:25 \\E: -> \\E\\
Название: Re: свободное место на диске Отправлено: Firefox от Март 17, 2010, 12:08 Код: QString str = "\\\\"+ip+"\\E:"; подскажите как исправить. Название: Re: свободное место на диске Отправлено: Пантер от Март 17, 2010, 12:24 Firefox, ты мой пост выше читала?
Название: Re: свободное место на диске Отправлено: Firefox от Март 17, 2010, 13:11 извиняюсь, не видела второй страницы, теперь всё работает. спасибо :-*и не злитесь, я очень рассеяная просто.
|