2017-03-21 5 views
0

system()を使用してefsd.txtのディレクトリにあるフォルダを取得するにはどうすればよいですか。下に設定した文字列変数に設定しますか?ありがとうございました。cmdを使用してディレクトリを取得し、C++文字列変数に変換する

string textFileName = "efsd.txt"; 
ofstream textFile(textFileName.c_str()); 
string directory; 

私の完全なスクリプトはここにある:

#include <iostream> 
#include <fstream> 
#include <stdlib.h> 
using namespace std; 

int main() 
{ 
    string textFileName = "SavedPasswords.txt"; 
    string currentPassword = "Pas123!TTT54"; 
    string currentName = "Home"; 
    string seperator = "===================="; 

    ofstream textFile(textFileName.c_str()); 

    textFile << "N: " << currentName << endl << "P: " << currentPassword << endl << endl << seperator << endl << endl; 

    string directory; 

    string systemCommands[3] = {"cd\\", 
    "cd " + directory, 
    textFileName}; 

    system(systemCommands[0].c_str()); 
    system(systemCommands[1].c_str()); 
    system(systemCommands[2].c_str()); 
} 
+0

コマンドラインを使用する代わりに、これは少しハックされます。 dirent.hと呼ばれるライブラリをWindowsとLinuxの両方で動作させますが、Windowsではソースファイルをインクルードする必要があります。 http://www.two-sdg.demon.co.uk/curbralan/code/dirent/dirent.html – saykou

+0

コマンドラインを使いたいと思ったら、どうすればいいですか? – onlineone22

+1

あなたのコードを見て、ディレクトリが常にexeのディレクトリであれば、あなたはargv [0]がexeディレクトリとファイル名 – saykou

答えて

0

"?私は、フォルダ内のefsd.txt年代を取得するにはどうすればよいです" - その名前を持つ複数のファイルが異なるフォルダに存在する可能性があります。一般的に、すべてのフォルダを検索する野生のガチョウの追跡に行きたくはありません。それらのうちのいくつかはネットワーク上の大きなフォルダであり、それらを検索することはかなり遅くなる可能性があります。しかし、私はあなたがどこを見るかについての考えを持っていると思う。あなたは私たちに言わないだけです。

ファイルの操作中に、Boost Filesystemライブラリを使用することは、古いコンパイラのオプションです。より新しいコンパイラは、その標準化されたC++ 17バージョンを使用することができる。

関連する問題