2

Matlab関数exists()とdir()はシンボリックリンクを無視しているようです。シンボリックリンクが存在するかどうかを確認する方法を教えてください。

>> exist('./path/to/symlink', 'file') 

ans =

     0

>> size(dir('./path/to/symlink'),1) 

ans =

     0

編集:問題は実際には単に存在をチェックするよりも悪いです。通常の関数は、シンボリックリンクをたどってファイルを開くことさえできません。たとえば、を使用しようとするとdlmread()、「そのようなファイルまたはディレクトリはありません」というエラーが返されます。

編集:問題を再現できなくなりました。なんらかのユーザーエラーだったに違いありません。

4

2 に答える 2

6

本気ですか?彼らは私のインストール(ubuntu + R2012a)でうまく動作します。

Linuxでは、パス名では大文字と小文字が区別されますが、Windowsでは大文字と小文字が区別されないことに注意してください。

lsターミナルでリンクを解除して、リンクが壊れていないかどうかをテストする必要があります。

ls -l

リンクが指すファイルも存在するかどうかを確認します。

于 2012-12-09T20:27:28.207 に答える
0

MATLABでは、次を使用できます

~isempty(dir(symLinkPath))  % Returns 0 if the symlink itself does not exist

シンボリックリンク自体の存在を確認します(リンク先のターゲットではありません)。シンボリックリンクのターゲットの存在を確認するには、次を使用できます。

exist(symLinkPath)  % Returns 0 if target of symlink does not exist
于 2019-12-05T23:34:47.510 に答える