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所示
(2)執行程式後狀態如圖2所示
(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