【Matlab文件操作】打开、创建、更改和删除文件与文件夹以及获取文件信息

 运行环境:Matlab

 撰写作者:左手の明天

🥇 精选专栏:《python》

  推荐专栏:《算法研究》

大家好🤗🤗🤗,我是左手の明天

  最近更新:2022 年 6 月 12 日,左手の明天的第 257 篇原创博客

 更新于专栏:Matlab

使用文件操作函数获取文件信息、管理文件和文件夹以及打开指定的文件。

目录

open:打开文件

⭐️打开Matlab路径中的文件

⭐️打开不在路径中的文件

mkdir:新建文件夹

⭐️在当前文件夹中创建子文件夹

⭐️在指定的父文件夹中创建子文件夹

⭐️创建已存在的文件夹

cd:更改当前文件夹

⭐️使用完整路径和相对路径更改当前文件夹

⭐️更改和还原当前文件夹

copyfile:复制文件或文件夹

⭐️将文件复制到另一文件夹

⭐️在当前文件夹中创建文件副本

⭐️将文件和文件夹复制到新文件夹中

⭐️将文件复制到只读文件夹中

delete:删除文件或对象

⭐️删除文件夹中的文件

⭐️删除图形对象

movefile:移动或重命名文件或文件夹

⭐️将文件移动到当前文件夹

⭐️将文件和文件夹移动到新文件夹

⭐️重命名文件夹

rmdir:删除文件夹

recycle:设置选项以便将已删除文件移到回收文件夹

⭐️查看当前回收状态

⭐️启用文件回收

获取文件信息

⭐️fileattrib:设置或者获取文件或文件夹的属性

️查看文件和文件夹属性

️设置文件属性

⭐️type:显示文件内容

⭐️visdiff:比较两个文件或文件夹

️比较两个文件

️比较两个文件并指定类型

⭐️what:列出文件夹中的 MATLAB 文

open:打开文件

⭐️打开Matlab路径中的文件

在编辑器中打开文件 num2str.m。MATLAB 会打开文件 matlabroot\toolbox\matlab\strfun\num2str.m。但是,如果在 MATLAB 路径中 toolbox\matlab\strfun 之上的文件夹中存在名为 num2str.m 的文件,MATLAB 将打开该文件。

open num2str.m

ans = logical
   1

⭐️打开不在路径中的文件

通过指定文件的完整路径,可打开不在 MATLAB 路径中的文件。如果文件不存在,MATLAB 将显示错误消息。

open C:\temp\data.mat

mkdir:新建文件夹

⭐️在当前文件夹中创建子文件夹

在当前文件夹中创建名为 newdir 的文件夹。

mkdir newdir

⭐️在指定的父文件夹中创建子文件夹

在文件夹 testdata 中创建名为 newfolder 的文件夹。使用相对路径,其中 newFolder 与当前文件夹处于同一层级。

mkdir ../testdata newFolder

⭐️创建已存在的文件夹

创建相同的文件夹两次,每次尝试后均验证操作的状态。

创建文件夹 newFolder。操作成功,返回状态 1,未显示错误和警告消息。

[status, msg, msgID] = mkdir('newFolder')

status = logical
   1

msg =

  0x0 empty char array


msgID =

  0x0 empty char array

再次创建文件夹 newFolder。操作仍然成功,返回状态 1。警告消息和消息 ID 通知您该文件夹已存在。

[status, msg, msgID] = mkdir('newFolder')

status = logical
   1

msg = 
'Directory already exists.'
msgID = 
'MATLAB:MKDIR:DirectoryExists'

cd:更改当前文件夹

⭐️使用完整路径和相对路径更改当前文件夹

将当前文件夹更改为 MATLAB R2017a 的精选示例文件夹,假定该版本安装在您的 C: 驱动器上。

cd 'C:\Program Files\MATLAB\R2017a\examples\matlab_featured'

使用完整路径将当前文件夹从 C:\Program Files\MATLAB\R2017a\examples\matlab_featured 更改为 C:\Program Files\MATLAB\R2017a

cd ..\..

使用相对路径将当前文件夹从 C:\Program Files\MATLAB\R2017a 更改回 C:\Program Files\MATLAB\R2017a\examples\matlab_featured

cd examples\matlab_featured

⭐️更改和还原当前文件夹

cd 'C:\Program Files\MATLAB\R2017a\examples\matlab_featured'

将当前文件夹更改为 C:\Program Files,更改之前先保存文件夹路径。

oldFolder = cd('C:\Program Files')

oldFolder =

    'C:\Program Files\MATLAB\R2017a\examples\matlab_featured'

使用 cd 命令显示新的当前文件夹。

cd

    C:\Program Files

copyfile:复制文件或文件夹

⭐️将文件复制到另一文件夹

将 myfile1.m 从当前文件夹复制到子文件夹 myFolder 中。

mkdir myFolder
copyfile myfile1.m myFolder

⭐️在当前文件夹中创建文件副本

在当前文件夹中创建 myfile1.m 的副本,并为其指定名称 myfile2.m

copyfile myfile1.m myfile2.m

⭐️将文件和文件夹复制到新文件夹中

将名称以 my 开头的文件和子文件夹从当前文件夹复制到文件夹 newFolder 中,而 newFolder 尚不存在。

copyfile my* newFolder

⭐️将文件复制到只读文件夹中

将文件 myfile1.m 从当前文件夹复制到只读文件夹 restricted 中。

创建只读文件夹 restricted

mkdir restricted
fileattrib restricted -w

复制并重命名文件 myfile1.m。状态 0 表明复制失败。

status = copyfile('myfile1.m', 'restricted');
status

status = logical
   0

使用 ‘f’ 选项复制文件 myfile1.m,以覆盖目标文件夹的只读状态。状态为 1 且 message  和 messageId  为空确认复制成功。

>> [status,message,messageId] = copyfile('myfile1.m', 'restricted', 'f');
>> status

status = logical
   1

>> message

message =

  0x0 empty char array

>> messageId

messageId =

  0x0 empty char array

delete:删除文件或对象

⭐️删除文件夹中的文件

删除当前文件夹中带有 .mat 扩展名的所有文件。

delete *.mat

⭐️删除图形对象

删除图形对象和图形对象数组。

创建一个条形图并绘制五条线。然后删除该条形图。

b = bar(1:5);
hold on
P = plot(magic(5));
delete(b)

《【Matlab文件操作】打开、创建、更改和删除文件与文件夹以及获取文件信息》

 Bar 对象变量 b 仍保留在工作区中,但不再引用对象。

display(b)

b = 
  handle to deleted Bar

删除 plot 创建的所有 Line 对象。

delete(P)

《【Matlab文件操作】打开、创建、更改和删除文件与文件夹以及获取文件信息》

movefile:移动或重命名文件或文件夹

⭐️将文件移动到当前文件夹

通过省略输入目标位置,将文件和文件夹移动到当前文件夹。

创建两个文件夹:第一个 myfiles,包含文件 myfile1.m,第二个 myotherfiles,包含文件 myfile2.m

mkdir myfiles
movefile myfile1.m myfiles
mkdir myotherfiles
movefile myfile2.m myotherfiles

将 myfile1.m 移动到当前文件夹。由于未指定目标位置,MATLAB 假定目标位置是当前文件夹。

movefile myfiles/myfile1.m

将当前文件夹设置为 myfiles。将 myotherfiles 及其内容移动到当前文件夹。

cd myfiles
movefile ../myotherfiles

⭐️将文件和文件夹移动到新文件夹

将名称以 my 开头的文件和子文件夹从当前文件夹移动到文件夹 newFoldernewFolder 之前并不存在)。

movefile my* newFolder

⭐️重命名文件夹

创建文件夹 myoldfolder,然后将其重命名为 mynewfolder

mkdir myoldfolder
movefile myoldfolder mynewfolder

rmdir:删除文件夹

删除文件夹 myfiles,该文件夹包含文件 myfile1.m 和 myfile2.m

创建文件夹 myfiles 并将文件 myfile1.m 和 myfile2.m 从当前文件夹移到新文件夹。

mkdir myfiles
movefile myfile1.m myfiles
movefile myfile2.m myfiles

尝试使用 rmdir 删除文件夹 myfiles。由于 myfiles 文件夹非空,因此操作失败,并返回状态 0 和详述操作失败原因的错误消息。

[status, message, messageid] = rmdir('myfiles')

status = logical
   0

message = 
'No directories were removed.'
messageid = 
'MATLAB:RMDIR:NoDirectoriesRemoved'

现在,使用 ‘s’ 标志删除文件夹 myfiles。状态 1 以及空 message 和 messageid 指示操作成功。

[status, message, messageid] = rmdir('myfiles', 's')

status = logical
   1

message =

  0x0 empty char array


messageid =

  0x0 empty char array

recycle:设置选项以便将已删除文件移到回收文件夹

⭐️查看当前回收状态

从文件回收为禁用的状态开始。验证当前的回收状态。

state = recycle

state =

off

⭐️启用文件回收

启用文件回收。然后,删除现有文件并将其移至回收站或临时文件夹。

recycle('on');
delete('myfile.txt')

获取文件信息

⭐️fileattrib:设置或者获取文件或文件夹的属性

️查看文件和文件夹属性

fileattrib myfile.m

            Name: 'C:\my_MATLAB_files\myfile.m'
         archive: 1
          system: 0
          hidden: 0
       directory: 0
        UserRead: 1
       UserWrite: 0
     UserExecute: 1
       GroupRead: NaN
      GroupWrite: NaN
    GroupExecute: NaN
       OtherRead: NaN
      OtherWrite: NaN
    OtherExecute: NaN

fileattrib C:\my_MATLAB_files\doc

ans = 

            Name: 'C:\my_MATLAB_files\doc'
         archive: 0
          system: 0
          hidden: 0
       directory: 1
        UserRead: 1
       UserWrite: 1
     UserExecute: 1
       GroupRead: NaN
      GroupWrite: NaN
    GroupExecute: NaN
       OtherRead: NaN
      OtherWrite: NaN
    OtherExecute: NaN

️设置文件属性

将 myfile.m 设置为可写。

fileattrib('myfile.m','+w')

文件或文件夹属性值,指定为字符向量或字符串标量,包含由空格分隔的以下一个或多个值:

说明

'a'

存档(仅限 Microsoft Windows 平台)。

'h'

隐藏文件(仅限 Windows 平台)。

's'

系统文件(仅限 Windows 平台)。

'w'

写入权限(Windows 和 UNIX 平台)。结果因平台和应用程序而异。例如,即使 fileattrib 禁用了某文件夹的“写入”特权而使其只读,但对于某些平台或应用程序,该文件夹中的文件可能是可写的。

'x'

可执行文件(仅限 UNIX 平台)。

⭐️type:显示文件内容

显示 diceRoll 文件内容。

type diceRoll

function [d1,d2] = diceRoll
str = '@()randi([1 6],1)';
d1 = str2func(str);
d2 = eval(str);
end

function r = randi(~,~)
r = 1;
end

⭐️visdiff:比较两个文件或文件夹

️比较两个文件

使用相对路径和完整路径比较两个文件。

比较当前文件夹中的两个文件 lengthofline.m 和 lengthofline2.m 

visdiff('lengthofline.m','lengthofline2.m')

️比较两个文件并指定类型

将 lengthofline.m 和 lengthofline2.m 两个文件作为二进制文件进行比较。

如果不指定类型,visdiff 将使用默认的文本比较类型来比例这两个文件。通过更改为二进制文件比较类型,可以检查行尾字符之类的差别。

visdiff('lengthofline.m','lengthofline2.m','binary')

⭐️what:列出文件夹中的 MATLAB 文件

列出 graph2d 文件夹中的 MATLAB 的文件和文件夹。此文件夹的位置取决于您的安装情况。

what graph2d
MATLAB Code files in folder matlabroot\toolbox\matlab\graph2d

Contents               figtoolset             loglog                 putdowntext            setscribeobjectdata    
axis                   getcolumn              middrag                rbbox                  sgtitle                
basicfitdatastat       getobj                 moveaxis               scribeclearmode        subplot                
box                    getorcreateobj         pan                    scribeeventhandler     texlabel               
doclick                getscribecontextmenu   plot                   scriberestoresavefcns  title                  
dokeypress             getscribeobjectdata    plotedit               scribetextdlg          xlabel                 
domymenu               grid                   plotyy                 semilogx               ylabel                 
doresize               gtext                  polar                  semilogy               zoom                   
enddrag                jpropeditutils         prepdrag               setscribecontextmenu   

P-files in folder matlabroot\toolbox\matlab\graph2d

axis     sgtitle  subplot  zoom     

Classes in folder matlabroot\toolbox\matlab\graph2d

arrowline     axisobj       editline      fighandle     hgbin         scribehgobj   
axischild     axistext      editrect      figobj        scribehandle  

全文共 4903 个字码字总结不易老铁们来个三连点赞、关注、评论

作者左手の明天

原创不易,转载请联系作者并注明出处

《【Matlab文件操作】打开、创建、更改和删除文件与文件夹以及获取文件信息》

 

    原文作者:左手の明天
    原文地址: https://blog.csdn.net/ywsydwsbn/article/details/125247943
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞