读取写入文件

读取

fopen 提取两个字符串参数:

指示打开文件是进行读取 (“r”)、写入 (“w”) 还是附加 (“a”) 操作。

如果将“+”字符添加到模式字符,Maya 会打开文件进行读/写。如果省略此参数,默认进行读取。

fopen 返回文件控制柄。文件控制柄表示打开文件。应此值保存到变量中,以便能够使用 fprint 等其他命令处理打开的文件。

1
$fileId = fopen($exampleFileName,"r");

读取一行(读取到下一个新行)。fgetline (fileID)

读取字词(读取到下一个空格)。fgetword (fileID)

读取单个值。fread (fileID,类型)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$fileId=fopen($exampleFileName,"r");
string $nextLine = `fgetline $fileId`;
while ( size( $nextLine ) > 0 ) {
print ( $nextLine );
$nextLine = `fgetline $fileId`;
}

// 测试文件末尾
string $nextWord = `fgetword $fileId`;
while ( !feof($fileId) ) {
print ( $nextWord + "\n" );
$nextWord = fgetword($fileId);
}

写入

使用打印命令的同等命令打印到文件。

fprint (fileID,字符串)

写入二进制数据。

fwrite (fileID,值)

1
2
3
$fileId = fopen($exampleFileName,"w");
fprint($fileId,"Hello there\n");
fclose($fileId);

操纵文件

使用 sysFile 命令来执行文件上的常用文件系统操作。

删除文件
sysFile -delete “文件名”

重命名文件
sysFile -rename “文件名”“新名称”

移动文件
sysFile -move “文件名”“新名称”

复制文件
sysFile -copy “文件名”“新名称”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

sysFile -rename "C:/temp/mayaStuff/myScene.mb.trash"
"C:/maya/projects/default/scenes/myScene.mb";


sysFile -rename "C:/temp/mayaStuff/myScene.will.be.deleted"
"C:/temp/mayaStuff/myScene.mb.trash";


string $destWindows = "C:/temp/mayaStuff/myScene.mb.trash";
string $srcWindows = "C:/maya/projects/default/scenes/myScene.mb";
sysFile -copy $destWindows $srcWindows;


sysFile -delete "C:/temp/mayaStuff/myScene.will.be.deleted"; // Windows

目录

更改当前工作目录。
chdir “path”

在目录中返回文件名的数组。
getFileList

创建新目录。
sysFile -makeDir “dirname”

1
2
3
4
5
6
7
//列出用户项目目录的内容
getFileList -folder `internalVar -userWorkspaceDir`;
// 将所有MEL文件存储在用户的脚本目录中在数组变量中
string $scriptDir = `internalVar -userScriptDir`;
string $scripts[] = `getFileList -folder $scriptDir -filespec "*.mel"`;
// 创建新的目录路径
sysFile -makeDir "C:/temp/mayaStuff"; // Windows