2017-01-23 6 views
1

私は今このページを初めて使っていますが、既に質問があります。ファイル名の特定の部分だけをC#で読み取る

私は現在、1台のマシンで約3つのMinecraft Serverのラウンドのサーバーインターフェイスのためのより大きなプロジェクト(少なくとも私にとって)です。

私はスタートファイルを手動で呼び出す必要がなくなったので、「(name_of_server)」という「サーバー」スタートファイル(単純なバッチファイル)の場所を持つSavefileを作成する関数を作成しました。 _SAVEFILE(number_of_server).txt "となります。

そして今、私はプログラムが私に(起動時に最適です)実際にいくつのサーバが以前に話された番号を求めて保存されたのかを見せたいと思っています。

すでにロックを実装して、すでに作成されたファイル番号を別の名前で保存することはできませんが、そこには別の話があります。

私はこのようにそれをやった:

private void checkForServer_button_Click(object sender, EventArgs e) 
    { 
     if (File.Exists(@"C:\Users\" + system_user + @"\Desktop\savedServers\*1.txt") == true) 
     { 
      string server1_location = File.ReadAllText(@"C:\Users\" + system_user + @"\Desktop\savedServers\*_SAVEFILE1.txt"); 
      checkForServer_response.Text = "There are Servers!"; 
      onlyInfo.Clear(); 
      onlyInfo.Text = "[CONSOLE] Found existing Server! Found at: " + server1_location; 
     } 
    } 

onlyInfoがダミー出力気圧として使用するリッチテキストボックスで、保存されたバッチファイルがどのように見えるかを示すために、最終版にとどまる可能性があります。

はい、ボタンをクリックすると、基本的に私のコードは何もしません。

もう1つの質問ですが、このタイプの使用方法に「*」を適切に設定するにはどうすればよいですか。

ありがとうございます!

答えて

1

File.Existsは、ファイル名にワイルド文字を使用できません。そしてどちらもFile.ReadAllTextです。

string[] files = System.IO.Directory.GetFiles(@"C:\Users\" + system_user + 
    @"\Desktop\savedServers\", "*1.txt"); 
if (files.Length > 0) 
{ 
    string server1_location = File.ReadAllText(files[0]); 
    ... 
} 
+1

'File.Exists(「ワイルドカード表現は」)'、実際にワイルドカード式に一致するファイルをリストし、リストが空であるかどうかをチェックすることによって実現され、イゴールの応答@明確にします。 –

+0

これは私を助けました!ありがとうございました! – Richard

関連する問題