2016-08-31 37 views
0

我的問題是我有幾個名稱爲「MORE0001」「MORE0002」等的文件夾,它們分別包含一個.SPE-文件。將文件從不同的文件夾複製到C++中的特定文件中

我想知道是否有方法通過遍歷所有單個文件夾來提取所有.SPE文件夾到一個文件夾。

我需要某物。像這樣:

for (int i=0; i<10;i++){ 

newfile = getfile("directory/MORE%04d/filename.SPE", i); 

// copy newfile to a new directory.. 

} 

我希望你們能幫我找到一個簡單的解決方案,因爲我還沒找到類似的問題。

+5

怎麼樣http://stackoverflow.com/questions/20161243/how-to-move-file-from-one-folder-to-different-folder-in- Linux的 –

回答

1

it's太容易..

我可以只使用重命名功能..

所以這將是這樣的:

rename(path/filename.SPE, newpath/filename.SPE); 

感謝,但解決它自己; )!

0

我已經創建了一個示例程序,這可能有助於解決您的問題。

#include<Windows.h> 
#include<regex> 

using namespace std; 

void main() 
{ 
    regex e1("MORE\\d+"); 
    string szDir = "C:\\*"; 
    WIN32_FIND_DATA ffd; 
    HANDLE hFind = FindFirstFileA(szDir.c_str(), &ffd); 
    do 
    { 
     if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
     { 
      if (regex_match(ffd.cFileName,e1)) 
      { 
       string s1 = ffd.cFileName; 
       string s2 = "C:\\" + s1 + "\\*"; 
       WIN32_FIND_DATA ffdMORE; 
       HANDLE hFindMORE = FindFirstFile(s2.c_str(), &ffdMORE); 
       do 
       { 
        regex e2("\\w+.SPE"); 
        if (regex_match(ffdMORE.cFileName,e2)) 
        { 
         string commondir = "C:\\CommonDir\\"; 
         string sourcePath = "C:\\" + s1 + "\\"; 
         CopyFile(sourcePath.append(ffdMORE.cFileName).c_str(), commondir.append(ffdMORE.cFileName).c_str(), FALSE); 
        } 
       } while (FindNextFile(hFindMORE, & ffdMORE) != 0); 
      } 
     } 
    } while (FindNextFile(hFind, &ffd) != 0); 
} 

感謝, Bharathraj

相關問題