Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Подскажите как узнать размер каталога? / 15 сообщений из 15, страница 1 из 1
26.01.2005, 07:26
    #32883615
Timer111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Подскажите, как узнать размер каталога, включая все его вложения. Необходимо , написать процедуру, которая покажет как распределяется место на диске. Скажем так:
C:\POWERBUILDER 20 MB
C:\WORK 12 MB
C:\MUSIC 36 GB
C:\ 2 MB
Free Space 13 GB

Если такая функция PFC или WinApi?
...
Рейтинг: 0 / 0
26.01.2005, 08:25
    #32883648
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Как обычно:
Бросаем взгляд на PFC - pfc_n_cst_filesrvwin32 объект
...
Рейтинг: 0 / 0
26.01.2005, 12:10
    #32884207
Timer111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Филипп можно поподробнее. Если возможно, то с примером.
...
Рейтинг: 0 / 0
26.01.2005, 16:32
    #32885208
Timer111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Филипп, в pfc_n_cst_filesrvwin32 видны функции getdiskspace или getvolumes, но непохоже, что они дают размер каталога (кстати не видно текста). Если считать пофайлово getfilesize, то в чем преимущество PFC ?
...
Рейтинг: 0 / 0
26.01.2005, 21:29
    #32885803
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Timer111Филипп, в pfc_n_cst_filesrvwin32 видны функции getdiskspace или getvolumes, но непохоже, что они дают размер каталога (кстати не видно текста). Если считать пофайлово getfilesize, то в чем преимущество PFC ?
Я разве про преимущества PFC говорил. Это пример того как использовать FindFirstFile/FindNextFile APIs.
Этот объект не имеет GetDiskFreeSpaceEx , которая и нужна для определения размера директорий напрямую (зато имеет GetDiskFreeSpace, декларации очень близки)...
...
Рейтинг: 0 / 0
26.01.2005, 22:06
    #32885833
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Филипп Timer111Филипп, в pfc_n_cst_filesrvwin32 видны функции getdiskspace или getvolumes, но непохоже, что они дают размер каталога (кстати не видно текста). Если считать пофайлово getfilesize, то в чем преимущество PFC ?
Я разве про преимущества PFC говорил. Это пример того как использовать FindFirstFile/FindNextFile APIs.
Этот объект не имеет GetDiskFreeSpaceEx , которая и нужна для определения размера директорий напрямую (зато имеет GetDiskFreeSpace, декларации очень близки)...
Функция GetDiskFreeSpaceEx к задаче никакого отношения не имеет вообще-то. Она предназначена для определения свободного и доступного места на указаном сетевом ресурсе. Указание ресурса делается при помощи пути.

А смотреть в pfc можно в том самом объекте (pfc_n_cst_filesrvwin32) функцию of_dirlist. Там пример того как использовать функции FindFirstFileA/FindNextFileA/FindClose. На основе этих функций самостоятельно пишешь рекурсивный обход дерева начиная с указаного каталога. Примеры алгоритмов этой задачи есть в любом учебнике.
...
Рейтинг: 0 / 0
26.01.2005, 22:20
    #32885840
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
White OwlФункция GetDiskFreeSpaceEx к задаче никакого отношения не имеет вообще-то. Она предназначена для определения свободного и доступного места на указаном сетевом ресурсе. Указание ресурса делается при помощи пути.

Слушайте, вы бы хотя бы прочли весь thread, по линку сходили , а потом лезли бы с идиотскими замечаниями...

GetDiskFreeSpaceEx

The GetDiskFreeSpaceEx function retrieves information about the amount of space available on a disk volume: the total amount of space, the total amount of free space, and the total amount of free space available to the user that is associated with the calling thread.


BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName,
PULARGE_INTEGER lpFreeBytesAvailable,
PULARGE_INTEGER lpTotalNumberOfBytes,
PULARGE_INTEGER lpTotalNumberOfFreeBytes
);

Parameters
lpDirectoryName
[in] Pointer to a null-terminated string that specifies a directory on the disk of interest. If this parameter is NULL, the function uses the root of the current disk. If this parameter is a UNC name, it must include a trailing backslash, for example, \\MyServer\MyShare\.
Note that this parameter does not have to specify the root directory on a disk. The function accepts any directory on the disk .
...
Рейтинг: 0 / 0
26.01.2005, 22:56
    #32885862
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Филипп White OwlФункция GetDiskFreeSpaceEx к задаче никакого отношения не имеет вообще-то. Она предназначена для определения свободного и доступного места на указаном сетевом ресурсе. Указание ресурса делается при помощи пути.
Слушайте, вы бы хотя бы прочли весь thread, по линку сходили , а потом лезли бы с идиотскими замечаниями...
Эх, Филипп - Филипп... Ну да, первый параметр функции это имя директории...
Дальше читать описание функции кто будет? В каком месте эта функция возвращает " размер каталога, включая все его вложения. " а?
Мне все больше и больше хочется в Бостон, как там оказывается жить легко...
...
Рейтинг: 0 / 0
26.01.2005, 23:56
    #32885893
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Думаю в этом - PULARGE_INTEGER lpTotalNumberOfBytes, если не работает, претензии к Micro$oftу...
...
Рейтинг: 0 / 0
27.01.2005, 00:20
    #32885908
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
А можно на всё это плюнуть и сделать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
OleObject wsscr, fldr
Integer  li_rc

wsh = CREATE OleObject
li_rc = wsh.ConnectToNewObject("Scripting.FileSystemObject")
IF li_rc >= 0  THEN
	fldr = wsh.GetFolder(sle_dir.text)
	MessageBox(sle_dir.text + " Size", String(fldr.Size))
END IF
...
Рейтинг: 0 / 0
27.01.2005, 00:25
    #32885915
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
В смысле
OleObject wsh, fldr
...
Рейтинг: 0 / 0
27.01.2005, 00:42
    #32885935
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
ФилиппДумаю в этом - PULARGE_INTEGER lpTotalNumberOfBytes, если не работает, претензии к Micro$oftу...
Читай внимательнее:
-------
lpTotalNumberOfBytes
[out] Pointer to a variable that receives the total number of bytes on the disk that are available to the user associated with the calling thread. This parameter can be NULL.
-------
...
Рейтинг: 0 / 0
27.01.2005, 01:09
    #32885947
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
White Owl ФилиппДумаю в этом - PULARGE_INTEGER lpTotalNumberOfBytes, если не работает, претензии к Micro$oftу...
Читай внимательнее:
-------
lpTotalNumberOfBytes
[out] Pointer to a variable that receives the total number of bytes on the disk that are available to the user associated with the calling thread. This parameter can be NULL.
-------

Читал, ни о чём не говорит. За каким хреном она тогда принимает any directory on the disk?
Ну да хрен с ним, через Скриптинг Хост всё равно проще...
...
Рейтинг: 0 / 0
27.01.2005, 08:54
    #32886102
Time111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
Спасибо всем за содержательную дискуссию.
Больше всего понравилось решение задачи через FSO от Филиппа, 5 строк без всяких рекурсий.
...
Рейтинг: 0 / 0
27.01.2005, 11:15
    #32886462
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как узнать размер каталога?
ФилиппЗа каким хреном она тогда принимает any directory on the disk?

Начиная с win2k разделы можно монтировать как каталоги. Этот параметр неявно указывает какой раздел использовать.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Подскажите как узнать размер каталога? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]