1. 程式人生 > >c++如何批量修改檔案字尾名

c++如何批量修改檔案字尾名


1、問題描述
在日常的應用中,很多時候會用到批量修改圖片的字尾名。比如將1.bmp修改為1.jpg。或許我們用格式工廠或者批處理檔案.bat課以輕而易舉的做到。這裡暫不討論。本篇文章僅僅對如何用c++做圖片批處理修改後綴名做一些說明。
2、c++程式
程式思路:先獲取到資料夾下所有檔案的名字,然後,用newname取代原來的oldname。

#include "stdafx.h"

#include <stdio.h>
#include <fstream>
#include <Windows.h>

#include <cstdio>
#include <iostream> #include <string> #include <io.h> #include <vector> #include <direct.h> #include <stdlib.h> #include <memory> using namespace std; void getFilesAll( string path, vector<string>& files) { //獲取資料夾下面的所有檔名字 //檔案控制代碼
long hFile = 0; //檔案資訊 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { if ((fileinfo.attrib & _A_SUBDIR)) { if (strcmp
(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) { getFilesAll( p.assign(path).append("\\").append(fileinfo.name) , files ); } } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } void postfix() { char *filePath="G:\\image\\"; char strname[60]; vector<string> filesa; getFilesAll(filePath ,filesa ); for(unsigned int i=0 ; i<filesa.size(); i++) { char newname[80]; //store the folder's name char oldname[80]; strcpy(oldname, filesa[i].c_str()); cout<<filesa[i].c_str()<<endl; //strcpy(newname, filesa[i].c_str()); sprintf(newname,"G:\\result\\%d.jpg",i); //sprintf(newname,"%d.jpg",i); rename(oldname,newname); if (rename(oldname,newname)) { cout<<"第"<<i<<"個檔名字從"<<filesa[i].c_str()<<"修改為"<<newname<<"成功"<<endl; } cout<<strname<<endl; } } void main() { postfix(); system("pause"); }


3、效果圖展示
(1)執行程式前狀態如圖1所示
圖1:程式執行前狀態

圖1 執行程式前狀態

(2)執行程式後狀態如圖2所示
圖2:程式執行後狀態

圖2 執行程式後狀態

(3)程式執行結果如圖3所示
圖3:程式執行結果展示
圖3 程式執行結果

相關推薦

c++如何批量修改檔案字尾

1、問題描述 在日常的應用中,很多時候會用到批量修改圖片的字尾名。比如將1.bmp修改為1.jpg。或許我們用格式工廠或者批處理檔案.bat課以輕而易舉的做到。這裡暫不討論。本篇文章僅僅對如何用c

linux 批量修改檔案字尾

今天遇到的一個問題,要將一批jpg檔案字尾名更改為png,憑感覺能用awk指令進行修改,就進行了嘗試。 想到的思路是:先列舉出檔名稱,再用awk對檔名稱進行處理分割,最後將字尾名進行修改。 首先列舉出檔名稱,得到如圖: 之後考慮獲取名稱,如“abad.jpg”,再將

Linux下批量修改檔案字尾及shell指令碼中匹配檔名稱變數寫法

rename .txt.COMPLETED  .txt   *.txt.COMPLETED 為了完整起見,我這裡再用一些例子加以說明 ${ } 的一些特異功能: 假設我們定義了一個變數為: fi

windows中批量修改檔案字尾

windows中經常遇到批量修改某些檔案的字尾問題,進行簡單加密/解密,下面是比較簡單幾種方法: N1: 1.新建一個.txt文字檔案2.開啟在裡寫入 ren *.avi *.abc注:ren和a

JAVA實現的批量更改檔案字尾的程式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Windows bat指令碼遍歷資料夾並批量修改檔案字尾

這個需求非常常見,例如批量轉換檔案格式等等,程式碼如下: @echo off ::對變數動態捕獲擴充套件變化 set strpdf=pdf set strtxt=txt SETLOCAL ENABLE

windows 批量修改檔案字尾

有時候我們批量下載圖片的時候沒有檔案字尾: 雖然只是改字尾,也要記得備份~ CMD命令列方法 (WindowsPowerShell沒用明白……) 1.按下win+r健,輸入cmd,回車來開啟命令列 預設是c盤下的使用者資料夾。 2.輸入 cd  /

python 批量修改檔案字尾

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Dec 19 18:53:47 2018 @author: bdf """ import os # 列出當前目錄下所有的檔案 files = os.listdir(

Python批處理修改檔案字尾

需求:為了寫OJ自動掛題 在這樣的情況下: 1.OJ掛題的需求要求所有的樣例檔案必須要以.in .out形式出現 (原本的資料形式是.txt) 2.並且要把所有的樣例都壓縮到一個壓縮包裡 3.既然支援一件處理檔案 那麼也要處理子目錄下的檔案 更新1:還要過濾掉inpu

複製一個資料夾下所有檔案(包括子資料夾)並修改檔案字尾 java實現加密文件unlock

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.i

python批量更改檔案字尾

import os path = './test/Q1706106' count = 1 for file in os.listdir(path): filename,ext = os.pat

Linux怎麼查詢指定字尾檔案以及批量修改後綴

今天做了一道Linux的題目,題目如下: 其中查詢並不難實現,使用find語句:find /var/log -name “*.log” 就可以實現,shell指令碼如下: #!/bin/bash find /var/log -name "*.log" | w

window下對檔案批量刪除指定字尾處理

linux下有shell,可以快速得刪除以.py為結尾的檔案: rm *.py 但是window下如何快速刪除?並寫個指令碼進行自動化刪除一個資料夾下的所有.py為結尾的檔案呢? Window下有

c# .net批量修改檔案內容

專案中會碰到需要批量替換修改html、txt等檔案的內容,以下貼出我的一個工具類 //讀取需要替換的文字 String pathTemp = System.Environment.CurrentDirectory + "\\t

同時修改多個檔案字尾

在Windows中,假如一次給一個檔案更名很容易,但一次給多個同類檔案改名,就有點強人所難了。此時若用DOS模式中的REN命令,則可輕鬆做到。比如:REN *.txt *.bak,可將副檔名為txt的一類檔案改成副檔名為bak檔案。至於具體情況的話:執行CMD,進入DOS環

如何獲取檔案字尾(無後綴字尾修改--非常規需求)

這是之前就寫了的 只不過放在了百度裡 沒有轉過來 現在轉過來 最近做SOCKET通訊傳輸檔案遇到獲取檔案真實型別,即字尾名的問題 我要傳輸檔名到客服端,上傳檔案時若是遇到無後綴名或是字尾名被更改的如何獲取其型別(字尾名) 在C#中獲取檔案字尾名可以Path.GetExtension

檔案字尾批量重新命名

因為從網易雲課堂上下載了不少的學習課程,但是通過手機轉移到電腦時,發現需要修改後面的檔案格式,你會發現一個一個修改很是麻煩,在這裡向大家提供一個方法。 1.用記事本建立一個.txt檔案。 1.接著我們就要往裡面寫東西啦。比如說你要將當前目錄下面的所有檔案全部修改成.mp4

C/C++判斷檔案字尾

1. std::string name("***.**"); std::string extension("**"); name.compare(name.size() - extension.size(), extension.size(), extension) ==

快速批量更改或新增檔案字尾

1、在要批量更改的資料夾下,新建文字檔案(即txt檔案),開啟文字檔案,輸入 ren * *.要改成的檔案字尾名,儲存文字檔案,每個 * 前都有一個空格!       (只將某些檔案字尾名更改為其他字

關於linux系統下批量修改文件和後綴

linux 字符串 總會遇到遇到處理文件的問題,比如文件後綴修改,以前都是寫shell,後來發現有個更簡單的方法rename1,在centos 下是用c 寫的 rename用法: a.txt 修改為 a.cc rename txt cc *.txt