일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CLOCK GATING
- Data HAzard
- DNN Accelerator
- linux c 컴파일
- CDC
- 딥러닝 가속기
- gcc 컴파일
- systolic array
- 남산업힐
- 대구 반도체 설계기업 특화
- AMBA
- pyverilog 설치 오류
- makefile
- Pyverilog 튜토리얼
- DNN 가속기
- Pyverilog 실행
- 컨벌루션 연산
- 데이터 해저드
- Design DNN Accelerator
- CUDA
- Makefile compile
- Pyverilog 설치
- linux c++ 컴파일
- gpgpu-sim
- pygraphviz 설치 오류
- pytest-pythonpath 설치 오류
- linux makefile 작성
- Pyvrilog tutorial
- 이진수 곱셈 알고리즘
- 클럭 게이팅
- Today
- Total
오늘은 맑음
C++ folder에 있는 file renaming하기 본문
folder내부에 있는 file을 모두 읽어 renaming하기
folder 내부에 있는 file을 모두 읽어 renaming하는 방법을 알아보겠습니다.
이 프로젝트를 작년에 이미지 처리를 위해 사용을 했었습니다.
필요한 이미지를 크롤링해 모아놓으니 이름이 모두 제각각이었습니다.
저는 일정한 이름, label과 index도 있어야 했기 때문에 많은 이미지들의 이름을 바꿔줄 필요가 있었습니다.
필요하신분들은 다음 코드를 따라하시면 될 것 같습니다.
변수 이름이 지저분하니 필요하신대로 바꿔 사용하시면 될 것 같습니다 :)
#include <iostream>
#include <io.h>
#include <string>
#include <direct.h>
#include <filesystem>
using namespace std;
int main(){
//renaming하고 싶은 데이터가 들어있는 폴더가 있는 경로를 적으세요
string dataSetPath = "폴더가 존재하는 경로\\";
//renaming하고 싶은 폴더의 이름
string folderName = "cuda\\"
//만약 새로운 폴더로 파일들을 옮기고 싶다면 그 폴더의 이름을, 현재 폴더에 그대로 저장하려면 현재 폴더의 //이름을 입력합니다.
string newFolderName = "cuda\\"
//현재 작업 할 폴더의 경로
string folderPath = dataSetPath + folderName;
//타겟 폴더의 경로
string newFolderPath = dataSetPath + newFolderName;
//폴더 내의 모든 파일을 읽기위해 확장자를 *.*로 지정
string path = folderPath + "*.*";
//renaming하기 위한 이름
string fileNameTag = "cuda_";
//원래 파일의 이름경로를 저장할 변수
string oldName;
//새로운 파일의 이름 경로를 저장할 변수
string newName;
intptr_t handle;
//폴더 내부의 파일 이름들을 저장할 변수
struct _finddata_t fd;
//만약 폴더 내부가 비어있다면 "No file in directory!"를 출력
//비어있지 않다면 fd에 모든 파일들의 이름을 저장
if ((handle = _findfirst(path.c_str(), &fd)) == -1L)
cout << "No file in directory!" << endl;
int i = 0;
//파일의 이름을 하나하나 읽어 rename함수를 이용해 renaming해주는 작업입니다.
//fd.name을 출력해보면 파일 fd에 들어있는 파일들의 이름을 확인할 수 있습니다.
//to_string(i-2)를 한 이유는 fd의 첫 번째 값과 두 번째 값이 file의 이름이 아닌 .과 ..이 들어있기 때문입니다.
//그 이유를 잘 몰라 저는 파일의 이름이 등장하는 2번째 값부터 renaming을 시작했습니다.
do{
if (i > 1) {
oldName = folderPath + fd.name;
newName = newFolderPath + fileNameTag+to_string(i-2) + ".png";
rename(oldName.c_str(), newName.c_str());
}
i++;
} while (_findnext(handle, &fd) == 0);
_findclose(handle);
}
1. cuda폴더에 있는 이미지들을 renaming
2. cuda폴더에서 new_cuda폴더로 파일들을 옮기면서 renaming하기
이 작업에서는 newFolderName을 new_cuda로 지정해주었습니다.
'Tip' 카테고리의 다른 글
수학기호 괄호(이상, 이하, 미만, 초과) (0) | 2019.04.18 |
---|---|
zip 라이브러리 (0) | 2019.03.26 |
Python 그래프 그리기 (0) | 2019.02.23 |
visual studio 컴파일 후 콘솔창 유지하기 (0) | 2019.02.21 |
Microsoft Power Point 프레젠테이션 노트 제거하기! (0) | 2019.02.18 |