0

ファイルが開いているかどうかを確認するコードを書き込もうとしました。その場合、ファイルが閉じられていない間、警告メッセージが画面に出力されます。

このようにしてエラーが発生したため、「fclose」を正しく使用しなかったと思います。

??? Error using ==> fclose
Invalid file identifier.  Use fopen to generate a valid file identifier.

Error in ==> fileisopen at 4
fclose(fid);

fclose 関数なしで試してみましたが、動作しますが、ファイルを開くと、ファイルは読み取り専用であるというメッセージが表示されました。

これは私のコードです:

path_of_file = 'C:\Documents and Settings\erezalon\Desktop\data.xls';

[fid msg_file] = fopen(path_of_file, 'a');
fclose(fid);
while (fid == -1)
    errormsg = strcat('the file: ', path_of_file, ' is open. please close it!');
    waitfor(msgbox(errormsg,'Error'));
    [fid msg_file] = fopen(path_of_file, 'a');
    fclose(fid);
end
4

1 に答える 1

0

成功しました!これが解決策です:

path_of_file = 'C:\Documents and Settings\erezalon\Desktop\data2.xls';

fid = fopen(path_of_file, 'a');
if fid ~= -1
    fclose(fid);
else
    while (fid == -1)
        errormsg = strcat('the file: ', path_of_file, ' is open. please close it!');
        waitfor(msgbox(errormsg,'Error'));
        fid = fopen(path_of_file, 'a');
    end
    fclose(fid);
end
于 2012-10-01T21:11:05.340 に答える