创建文件【wenjian.m】,内容如下:
clear all;%清除所有内存变量
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%定义文件名
file_name_tag=1;%准备进入循环,至少循环一次,此结构相当于C语言do...while...语句
err_file_name=['\/:*?"<>|'];%文件名不应含有的9个字符
while file_name_tag
err_num=0;
err_char=[];
file_name=input('文件名:','s');%其中's'是输入文件名为
字符串,可以为空
for n=1:length(err_file_name)
if sum(file_name==err_file_name(n))
err_num=err_num+1;
%获取输入的文件名中非法的字符:
err_char(err_num)=char(err_file_name(n));%用char()函数生成字符串err_char
end;
end;
if err_num
disp(strcat('文件名中含有非法字符:',err_char,',请重新输入!'));
else,
file_name_tag=0; %
跳出循环 end;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%设置文件路径
file_path_form=input('路径输入方式,“0”代表自动,“1”代表手动:');
switch file_path_form
case 0
file_path=strcat(uigetdir,'/');%路径与文件名之间应该用“/”隔开
case 1
file_path_tag=1;%准备进入循环
while file_path_tag
file_path=input('路径:','s');
if length(file_path)==0||file_path(end)~='/'||file_path(2)~=':'||file_path(3)~='/'
disp('错误的文件路径,应以“X:/”开头,并以“/”结束,请重新输入!');
else,
file_path_tag=0;%跳出循环
end;
end;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%设置文件扩展名
file_ext_tag=1;%准备进入循环
while file_ext_tag
file_ext=input('文件扩展名:','s');
if length(file_ext)==0||file_ext(1)~='.'
disp('错误的文件扩展名,应以“.”开头,请重新输入!');
else,
file_ext_tag=0;%跳出循环
end;
end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%生成文件
file=strcat(file_path,file_name,file_ext);%完整的文件包括路径、名称和扩展名
fid=fopen(file,'r');
if fid>0%检查文件是否已存在
fid=fclose(fid);%文件以只读方式打开,及时关闭文件
sign=input(['文件已存在!输入“Y”或“y”,则更新原文件;',...
'输入“N”或“n”,则请更改文件名、路径或扩展名;',...
'输入其它字符,则退出:'],'s');
if sign=='Y'||sign=='y'
delete(file);%先删除原文件
fid=fopen(file,'w');%后创建新文件
fid=fclose(fid);%文件已更新,及时关闭文件
elseif sign=='N'||sign=='n'
wenjian;%返回初始状态,重新输入
end;
else,
fid=fopen(file,'w');%文件不存在,创建新文件
if fid>0
fid=fclose(fid);%文件已更新,及时关闭文件
end;
end;本回答被提问者采纳