Каков наилучший способ определить размер файла с помощью MATLAB? Первая мысль, которая приходит на ум, - это size(fread(fid))
.
Как получить размер файла в MATLAB?
Ответ 1
Обратитесь к dir, как указано выше.
Обратите внимание, что функция dir работает только с файлами, а не только с каталогами.
>> s = dir('c:\try.c')
s =
name: 'try.c'
date: '01-Feb-2008 10:45:43'
bytes: 20
isdir: 0
datenum: 7.3344e+005
Ответ 2
Вы можете использовать функцию DIR для получения информации о каталоге, которая включает размеры файлов в этом каталоге. Например:
dirInfo = dir(dirName); %# Where dirName is the directory name where the
%# file is located
index = strcmp({dirInfo.name},fileName); %# Where fileName is the name of
%# the file.
fileSize = dirInfo(index).bytes; %# The size of the file, in bytes
Или, поскольку вы ищете только один файл, вы можете сделать что-то Elazar и просто передать абсолютный или относительный путь к вашему файлу в DIR:
fileInfo = dir('I:\kpe\matlab\temp.m');
fileSize = fileInfo.bytes;
Ответ 3
Использовать тот факт, что MatLab имеет доступ к объектам Java:
myFile = java.io.File('filename_here')
flen = length(myFile)
Ответ 4
Если вы не хотите жестко указывать в своем каталоге, вы можете использовать встроенный инструмент pwd, чтобы найти текущий каталог, а затем добавить к нему свое имя файла. См. Пример ниже:
FileInfo = dir([pwd,'\tempfile.dat'])
FileSize = FileInfo.bytes
Ответ 5
Этот код работает для любого файла и каталога (нет необходимости в абсолютном пути):
dirInfo=dir(pwd);
index = strcmp({dirInfo.name},[filename, '.ext']); % change the ext to proper extension
fileSize = dirInfo(index).bytes
Ответ 6
Вопрос, похоже, указывает на то, что используется fopen
/fread
/... В этом случае, почему бы не искать конец файла и читать позицию?
Пример:
function file_length = get_file_length(fid)
% extracts file length in bytes from a file opened by fopen
% fid is file handle returned from fopen
% store current seek
current_seek = ftell(fid);
% move to end
fseek(fid, 0, 1);
% read end position
file_length = ftell(fid);
% move to previous position
fseek(fid, current_seek, -1);
end
Matlab мог предоставить ярлык.
Подробнее о ftell
можно найти здесь.
Ответ 7
Простой способ найти размер файла: введите эти видеокамеры
К = imfinfo ( 'filename.formate');
size_of_file = K.FileSize
и получить размер файла.