2016-05-05 11 views
8

空きディスク容量を判断するMATLABの関数はありますか? MS-DOS dirコマンドを使用してその出力の最後の行を解析する一時的な関数を作成しました。私はそれが期待どおりに動作していると思うが、(1)それは他のシステム(OS X、Linux、Unix、etx)では動作しませんし、(2)異なるWindowsバージョンでも失敗することがあります。おそらく誰かがそれをより一般的にするために改良するかもしれませんか?おかげMATLABのディスク容量を調べるにはどうすればいいですか

コード:

function out = freediskspace 
    [~,d] = dos('dir'); 
    C = textscan(d,'%s','Delimiter','\n'); C = C{1}{end}; 
    C = strrep(C,',',''); 
    r = regexp(C,'\d+','match'); 
    out = str2double(r{2}); 
end 
+0

は、このコードをチェックしてください。 http://www.mathworks.com/matlabcentral/fileexchange/41904-disk-usage –

+0

ありがとうフェリペ。私はファイルを見ていきます。 – Celdor

+0

私はIgorの関数 'disk_free'を使っています。重要ないくつかの極端なケースを扱うなどの追加機能は別として、同じ原則を使用し、同じJavaオブジェクト 'java.io.File(path)'に基づいています – Celdor

答えて

12

あなたは(これは、LinuxとWindowsの両方で動作します - 私はOSXをチェックしていませんが、それは問題ないはずですが)Javaコールを使用することができます。例えば

function free = getFreeSpace(path) 

    if nargin < 1 || isempty(path) 
     path= '.'; 
    end 

    free = java.io.File(path).getFreeSpace(); 

end 

>> f = getFreeSpace('C:\') 
f = 
    3.9338e+11 
+0

ありがとうChris。そのソリューションは私のものよりもはるかに優れています! – Celdor

+0

OS XはUnix系のシステムなので、うまくいくと思います。私は自宅でMacBook Proを持っています。私はそれをチェックし、あなたに知らせる:)乾杯! – Celdor

+0

存在しないファイルのエラー処理を追加すると便利です。 @MatthiasW。 –

関連する問題