Matlab: проверьте, открыт ли файл xls

Я попытался написать код, который проверяет, открыт ли файл. если это так, пока файл не закрыт, на экран будет выведено предупреждающее сообщение.

Думаю, я неправильно использовал «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

person Alon Shmiel    schedule 01.10.2012    source источник
comment
У вас есть права на запись в рассматриваемый файл (data.xls)?   -  person aganders3    schedule 02.10.2012
comment
@ganders3, что ты имеешь в виду? благодарю вас.   -  person Alon Shmiel    schedule 02.10.2012


Ответы (1)


Я преуспел! это решение:

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
person Alon Shmiel    schedule 01.10.2012