文件批量重命名,批量删除、复制都可参考
批量文件重命名(不改变文件后缀名,即文件格式)
我这里的情况是:某程序生成的文件都有文件名+ _CloudExtraction 后缀,而为了需要,需要改成文件名+mask的形式,
如:aaaaa _CloudExtraction.jpg --> aaaaamask.jpg
IDL代码如下
pro FileRename
compile_opt IDL2
filesearch='F:\YXY-GF-6\HaiYang\ImgAndCloudmask_1_51'; 'E:\image\tifCloudDet'
ext='.JPG';文件名后缀
file=FILE_SEARCH(filesearch,'*.JPG',count=num);打开影像文件列表
for j=0,num-1 do begin
inputfile=file[j]
;这里inputfile类似于"E:\image\HY\122.tif_CloudExtraction.jpg"这样的字符串
;将字符串以"\"符号打断,以便取最后一个"\"后的字符串"122.tif_CloudExtraction.jpg"经变换后做输出文件名
inputfilesplit = strsplit(inputfile,'\',/extract)
outputfilename=inputfilesplit[N_ELEMENTS(inputfilesplit)-1];取打断后最后一个"\"后的字符串做输出文件名
;;如果影像有后缀名,如.jpg,则需要加下面一段
inputfilesplit = strsplit(outputfilename,'.',/extract)
outputfilename=inputfilesplit[0];取打断后最后一个"\"后的字符串做输出文件名
;;如果影像有后缀名,如.dat,则需要加上面一段
n=strpos(outputfilename,"_CloudExtraction")
if n ne -1 then begin
outputfilename=strmid(outputfilename,0,n)
endif
outputfilename=filesearch+'\'+outputfilename+'mask'+ext
file_move,inputfile,outputfilename
print,FORMAT='(%"%d/%d finished!")',j+1,num ;打印finished,提示完成
endfor
end