我试图在目录中将文件重命名为小写,但我遇到的问题是能够扫描子目录中的文件。
因此,在这种情况下,$app_dir
是主目录,我需要更改的文件存在于多个子文件夹中。
到目前为止我的代码:
$files = scandir($app_dir);
foreach($files as $key=>$name){
$oldName = $name;
$newName = strtolower($name);
rename("$app_dir/$oldName","$app_dir/$newName");
}
感谢您的帮助。
答案 0 :(得分:0)
您可以使用递归函数执行此操作。
if not isinstance(temp[count], complex):
print(temp[count])
count += 1
这基本上遍历一个目录,如果某个东西是一个重命名它的文件,如果某个东西是它在该目录上运行的目录。
答案 1 :(得分:0)
如果您尝试小写所有文件名,可以尝试:
使用此文件系统:
<link href="http://netdna.bootstrapcdn.com/bootstrap/2.0.4/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://rawgit.com/cletourneau/angular-bootstrap-datepicker/master/dist/angular-bootstrap-datepicker.css" rel="stylesheet"/>
<body ng-app="demo">
<div>
<div data-ng-controller="AppCtrl">
<input id="datepicker" type="text" data-ng-datepicker data-ng-options="datepickerOptions" data-ng-model="date">
<br>
<button data-ng-click="ukFormat()">UK Format</button>
<button data-ng-click="usFormat()">US Format</button>
<hr>
"Selected format: "{{format}} {{datepickerOptions.format}}
</div>
</div>
<script src="http://code.jquery.com/jquery-2.0.2.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/2.0.4/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script src="https://rawgithub.com/cletourneau/angular-bootstrap-datepicker/master/dist/angular-bootstrap-datepicker.js" charset="utf-8"></script>
</body>
代码:
Josh@laptop:~$ find josh
josh
josh/A
josh/B
josh/f1
josh/f2
josh/is
josh/is/awesome
josh/is/awesome/e
josh/is/awesome/t
结果:
<?php
$app_dir = 'josh';
$dir = new RecursiveDirectoryIterator($app_dir, FilesystemIterator::SKIP_DOTS);
$iter = new RecursiveIteratorIterator($dir);
foreach ($iter as $file) {
if ($file != strtolower($file)) {
rename($file, strtolower($file));
}
}
此代码不考虑目录中的大写字母,但该练习取决于您。
答案 2 :(得分:0)
尝试那样
public function renameFiles($dir)
{
$files = scandir($dir);
foreach ($files as $key => $name) {
if (is_dir("$dir/$name")) {
if ($name == '.' || $name == '..') {
continue;
}
$this->renameFiles("$dir/$name");
} else {
$oldName = $name;
$newName = strtoupper($name);
rename("$dir/$oldName", "$dir/$newName");
}
}
}