How do you get the size of a file in MATLAB?

雨燕双飞 提交于 2019-12-28 12:56:26

问题


What is the best way to figure out the size of a file using MATLAB? The first thought that comes to mind is size(fread(fid)).


回答1:


Please see the dir function as stated above.

Please note that the dir function works on files and not on directories only.

>> 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:


You can use the DIR function to get directory information, which includes the sizes of the files in that directory. For example:

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

Or, since you are looking for only one file, you can do what Elazar said and just pass an absolute or relative path to your file to DIR:

fileInfo = dir('I:\kpe\matlab\temp.m');
fileSize = fileInfo.bytes;



回答3:


Use the fact that MatLab has access to Java Objects:

myFile = java.io.File('filename_here')
flen = length(myFile)



回答4:


If you don't want to hardcode in your directory, you can use the built in pwd tool to find the current directory and then add your file name to it. See example below:

FileInfo = dir([pwd,'\tempfile.dat'])
FileSize = FileInfo.bytes



回答5:


The question seems to indicate that fopen/fread/.. is used. In this case, why not seeking to the end of the file and reading the position?

Example:

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 could have provided a shortcut..

More on ftell can be found here.




回答6:


This code works for any file and directory (no need for absolute path) :

    dirInfo=dir(pwd);
    index = strcmp({dirInfo.name},[filename, '.ext']); % change the ext to proper extension 
    fileSize = dirInfo(index).bytes



回答7:


Easy way to find size of file is: enter these cammands

K=imfinfo('filename.formate');

size_of_file=K.FileSize

and get size of file.



来源:https://stackoverflow.com/questions/849739/how-do-you-get-the-size-of-a-file-in-matlab

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!