:: Visual Foxpro, Foxpro for DOS
Как узнать размер файла
tmp_adr
Автор

Сообщений: 185
Дата регистрации: 29.10.2007
Как можно узнать размер файла, если с полным путём, его длина 500 символов и более., per=per1+per2 и т.д., т.е. составляем переменную, которую затем передаём в adir(x,per), но не получается, есть какие-нибудь варианты?
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
FUNCTION FileSize(lcFileName)
*-- Returns the size of a file. SET COMPATIBLE must be ON for
*-- FSIZE() to return the size of a file. Otherwise, it returns the size of a field.
LOCAL lcSetCompatible, lnFileSize

m.lcSetCompatible = SET('COMPATIBLE')
SET COMPATIBLE ON
m.lnFileSize = IIF(FILE(lcFileName),FSIZE(lcFileName),0)
SET COMPATIBLE &lcSetCompatible
RETURN m.lnFileSize
ENDFUNC
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
tmp_adr
Автор

Сообщений: 185
Дата регистрации: 29.10.2007
Спасибо, но показывает 0, и по моему FSIZE это только для dbf файлов
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
PaulWist

Сообщений: 14621
Дата регистрации: 01.04.2004
forum.foxclub.ru


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
tmp_adr
Автор

Сообщений: 185
Дата регистрации: 29.10.2007
не знаю, то ли там спец символы в пути-имени файла, то ли длина(500 символов), но не fsize(c COMPATIBLE), ни adir, не могут работать с такими длинными переменными, т.е. получается FSO.. :-(
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
PaulWist

Сообщений: 14621
Дата регистрации: 01.04.2004
Проверь длину пути, которая попадает в переменную, возможно в самой переменной путь обрезается.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
tmp_adr
Автор

Сообщений: 185
Дата регистрации: 29.10.2007
С длиной всё нормально..
В общем не получилось и с fso(то же что и в теме forum.foxclub.ru)
не получилось и с cmd for %I in ("%FILENAME%") do @echo %~zI
в общем ставлю условие и если длина с полным путём > 250, то проверяю через subst, по чайниковски конечно.. но работает.
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
А нельзя сначала перейти в директорию файла (set default), а потому указать только имя файла, но уже без пути доступа? FoxPro в этом случае сначала будет искать в текущей директории. Ну, потом не забыть вернуться в исходную директорию, конечно...
Ratings: 0 negative/1 positive
Re: Как узнать размер файла
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Когда-то я пытался обмануть систему таким способом (зайти в папку на большой глубине) - это не поможет.
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Можно преобразовать полное имя файла (а без него никак) в "8.3-имя" (ДОС-имя, это умеет делать ADIR с опцией, и API). Хотя, при глубоком вложении, и с таким преобразованием можно зашкалить за (примерно) 128 (или 256) полную длину имени...
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
_vit

Сообщений: 5176
Дата регистрации: 29.07.2002
of63
Можно преобразовать полное имя файла (а без него никак) в "8.3-имя" (ДОС-имя, это умеет делать ADIR с опцией, и API). Хотя, при глубоком вложении, и с таким преобразованием можно зашкалить за (примерно) 128 (или 256) полную длину имени...

Я тоже об этом подумал.

Ну или засучить рукава и заюзать функции WinAPI GetFileSizeEx или GetFileAttributesEx.



Исправлено 1 раз(а). Последнее : _vit, 09.08.22 21:11
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я первый об этом подумал! ) шутка)

() с именами файлов в винде получилось не очень, но сизх пор. Есть старые фишки, начинающиеся с "\\". Не пробовал, может, они другие. Да и нет необходимости. Просто, не закапывайте файлы глубоко в субдиректориях...
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
tmp_adr
Автор

Сообщений: 185
Дата регистрации: 29.10.2007
per="X:\Ияяяяяя\яяяяяяяяяяяяяяяяя\яяяяя\1111\111111111 11111\1111111 111 11111\1 1111111 11111111\1 1111111 qqqqqqqq QQQQ QQQQQ\"
_File ="10.QQQQQQ wwwwwwwww eeeee от 11 марта 1111 года№11.2.3-104.ЯЯ.1.М.1.jpeg""
a='!subst y: "'+per+'"'
&a
adir(); size(); loFSO.GetFile() и т.д.
subst x: /d
не оптимально, но для меня достаточно...
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
_vit

Сообщений: 5176
Дата регистрации: 29.07.2002
tmp_adr
не оптимально, но для меня достаточно...

"ладно, и так сойдет";)
www.youtube.com
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
_vit
Ну или засучить рукава и заюзать функции WinAPI GetFileSizeEx или GetFileAttributesEx.

Помнится, со структурами Winapi у вас были проблемы, разобрались?
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Лулгу, проблемы с API еще остались?

Школьный вопрос: В байте столько бит информации?



Исправлено 1 раз(а). Последнее : of63, 13.08.22 19:57
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Cмотря какой байт и сколько информации в битах - пустые биты в байте, отсутствие информации. Такая херня, деточки. Школьный вопрос, однако!



Исправлено 3 раз(а). Последнее : Ydin, 15.08.22 22:52
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
Одно лишь в жизни вечно.
В дециметре - литр.
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
_vit

Сообщений: 5176
Дата регистрации: 29.07.2002
Taran
Одно лишь в жизни вечно.
В дециметре - литр.

Ну нет, бывает что не хватает.;)
Ratings: 0 negative/0 positive
Re: Как узнать размер файла
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
_vit
Taran
Одно лишь в жизни вечно.
В дециметре - литр.

Ну нет, бывает что не хватает.;)

Пуская меня завтра посадят в тюрьму....

Вит! Мое почтение!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 17 (Гостей: 17)

© 2000-2024 Fox Club 
Яндекс.Метрика