1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
function [status,msg]=mkdir(varargin)
// mkdir Make a directory
//------------------------------------------------------------------------
// Allan CORNET
// INRIA 2004
//------------------------------------------------------------------------
lhs=argn(1);
rhs=argn(2);
DirName='';
NewDirName='';
status=0;
msg='';
select rhs
case 0
error('Number of parameters incorrect.');
break
case 1
DirName=pwd();
NewDirName=varargin(1);
break
case 2
DirName=varargin(1);
NewDirName=varargin(2);
break
else
error('Number of parameters incorrect.');
end
NewDirectory=fullfile(DirName,NewDirName)
if (fileinfo(NewDirectory)==[]) then
// Le repertoire n'existe pas
status=1;
else
// Le fichier ou repertoire existe
if (isdir(NewDirectory)) then
// c'est un repertoire
status=2;
else
// c'est un fichier
status=-2;
end
end
select status
case 0
ErrMsg='a file with the same name already exists in '+DirName+' .';
msg=ErrMsg;
break
case 1
if MSDOS then
NewDirectory='""'+NewDirectory+'""'
ver=OS_Version();
if ver == 'Windows 98' | ver == 'Windows 95' | ver == 'Windows ME' then
batchlog = ' >'+ TMPDIR+'\mkdir.out';
else
batchlog = ' >""'+ TMPDIR+'\mkdir.out""' +' 2>""'+TMPDIR+'\mkdir.err""';
end
cmd='mkdir '+NewDirectory;
cmdline=cmd+batchlog;
else
batchlog = ' >'+ TMPDIR+'/mkdir.out' +' 2>'+TMPDIR+'/mkdir.err';
cmd='mkdir '+NewDirectory;
cmdline=cmd+batchlog;
end
status=unix(cmdline);
if (status~=0) then
if MSDOS then
ver=OS_Version();
if ver == 'Windows 98' | ver == 'Windows 95' | ver == 'Windows ME' then
msg='Error :'+cmd;
else
msg='Error : '+mgetl(TMPDIR+'\mkdir.err');
msg=msg+' '+mgetl(TMPDIR+'\mkdir.out');
end
else
msg='Error : '+mgetl(TMPDIR+'/mkdir.err');
msg=msg+' '+mgetl(TMPDIR+'/mkdir.out');
end
status=0;
else
msg='';
status=1;
end
break
case 2
ErrMsg='this directory already exists in '+DirName+' .';
msg=ErrMsg;
break
else
ErrMsg='Error(s) Impossible to create directory '+NewDirectory+' .';
msg=ErrMsg;
end
endfunction
//------------------------------------------------------------------------
|