2009-05-11 5 views

답변

52

참조하십시오 위에서 설명한대로 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 
+0

+1 : 좋은 지적. 파일 이름을 전달할 수도 있음을 언급하는 것을 잊어 버렸습니다. – gnovice

+0

그리고 파일이 현재 디렉토리에 있다면, 경로를 신경 쓰지 않고'dir ('try.c') 만 쓸 수 있습니다. –

7

사용 매트랩 자바 객체에 액세스 할 수 있다는 사실은 :

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

언제나 답변을 드릴 수는 없지만 항상 dir과 비교해보십시오. – k4lls

+1

나는'dir'이 실패하고 이것이 성공하는 것을보고 싶다. 지금까지 나는 단지'dir'만으로 결과를 얻었습니다. –

22

당신은 그 디렉토리에있는 파일의 크기를 포함 디렉토리 정보를 얻을 수있는 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; 
+0

안녕하세요, 제 답변 때문에 배지를 받았습니다 (8> 3 * 2). ;-) –

+0

불행히도, 아니오. 당신의 대답은 최소한 10 개의 upvotes를 가져야합니다. 이것은 20이되어야 함을 의미합니다. 그런 종류의 숫자가 발생할 수있는 MATLAB에 관심이있는 충분한 사람들이 있다고 생각하지 않습니다. 우리는 꿈을 꾸지 만 ... =) – gnovice

5

디렉토리에 하드 코드하지 않으려면 내장 pwd 도구를 사용하여 현재 디렉토리를 찾은 다음 파일 이름을 추가하십시오.

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

아마 시간이 지남에 따라 디렉토리가 변경되었지만 현재 파일이 현재 디렉토리에있는 경우에는 현재 전체 이름을 걱정할 필요가 없습니다. –

1

이 코드는 모든 파일 및 디렉토리 (절대 경로 필요 없음) 작동 : 아래의 예를 참조하십시오

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

아마도 시간이 지남에 따라 디렉토리가 변경되었지만 현재 파일이 현재 디렉토리에있는 경우에는 현재 전체 이름을 걱정할 필요가 없습니다. –

1

문제는 fopen/fread이/...이 사용되는 것을 나타내는 것 같다. 이 경우 파일 끝에 도달하고 위치를 읽는 것이 좋습니다.

예 :

ftell에 matlab에 바로 가기를 제공 한 수
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 

..

더는 here를 찾을 수 있습니다. 파일의 크기를 찾을 수

+0

감사합니다. (!) 필자는 코드에서 파일 경로가 아닌 열려있는 파일의 fileID를 가지고 있다고 생각하여 매우 유용하다고 생각했습니다. – MarcinKonowalczyk

-1

쉬운 방법은 다음과 같습니다 이 cammands에게

K = imfinfo ('filename.formate')를 입력합니다

size_of_file = K.FileSize

및 파일의 크기를 얻을.

+1

일반적으로 작동하지 않는 것 같습니다. 그래픽 파일 만 사용하도록 설계된 것 같습니다. –

관련 문제