什么是使用MATLAB确定文件大小的最佳方法?首先想到的是
size(fread(fid))
。请查看上面提到的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
您可以使用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;
利用MatLab可以访问Java对象的特性:
myFile = java.io.File('filename_here')
flen = length(myFile)
dir
失败的地方,而这个成功了。到目前为止,我总是只用 dir
就能得到结果。 - Dennis Jaheruddin如果您不想在目录中硬编码,可以使用内置的pwd工具找到当前目录,然后将您的文件名添加到其中。请参见以下示例:
FileInfo = dir([pwd,'\tempfile.dat'])
FileSize = FileInfo.bytes
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
的更多信息可在此处找到。
dirInfo=dir(pwd);
index = strcmp({dirInfo.name},[filename, '.ext']); % change the ext to proper extension
fileSize = dirInfo(index).bytes
查找文件大小的简便方法是: 输入以下命令
K=imfinfo('filename.formate');
size_of_file=K.FileSize
获取文件的大小。
dir('try.c')
而不必担心路径。 - Dennis Jaheruddin