[英]copy multiple text files from a folder into different folders in C++
我做了一個samll c ++程序,可以將多個文件從一個文件夾復制到其他一些文件夾。 例如:我在輸入文件夾中有2個名為0.txt和1.txt的文件,我想將0.txt復制到名為1的文件夾,並將1.txt復制到名為2的文件夾(這些文件夾是先前制作的)。 我的示例代碼如下:
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include<stdlib.h>
#include<fstream>
#include <sstream>
using namespace std;
#define upper_bound 1 // total number of folders starting from 0
std::string to_string(int i) {
std::stringstream s;
s << i;
return s.str();
}
int main()
{
for( int i=0;i<=upper_bound;i++)
{
string s = ".\\input";
string s1=".\\";
string p= ".txt";
string Input = s;
string CopiedFile = to_string(i)+p;
string OutputFolder = s1+to_string(i);
CopyFile(Input.c_str(), string(OutputFolder+CopiedFile).c_str(), TRUE);
}
}
但是當我運行它時,什么也不會被復制。 這有什么問題嗎? 我將如何復制這些文件?
您正在嘗試將文件“。\\ input.txt”復制到“。\\ 1 \\ 1.txt”
input.txt在當前目錄中可能不存在; 嘗試將其設置為絕對路徑
您永遠不會創建目錄“ 1”(同樣在隨機工作目錄中)。 文檔沒有說如果不存在,它將為您創建目錄。 因此,您可能應該確保它可以執行,否則請創建它。
這是函數的語法:
BOOL WINAPI CopyFile(
_In_ LPCTSTR lpExistingFileName, // absolute input path.
_In_ LPCTSTR lpNewFileName, // absolute output path
_In_ BOOL bFailIfExists // to determine if you want to prevent the
//file from being replaced
);
您的輸入路徑必須是絕對的。 文件的輸入路徑不是絕對的。 它只是尋址文件的目錄,而不是確切的文件。
替換以下
string Input = s;
有:
string Input = s + String("\\") + to_string(i) + p;
我在輸入文件夾中有2個名為0.txt和1.txt的文件
因此,您必須直接處理這兩個文件。 但是對於每次迭代,變量input
僅包含字符串".\\\\input"
,這是目錄,而不是絕對路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.