簡體   English   中英

C#Streamwriter幫助

[英]C# Streamwriter help

嗨,我需要一點幫助。 我需要我的Streamwriter糾正我從Directory.Getfiles調用中獲得的文件名

string lines = (listBox1.Items.ToString());
        string sourcefolder1 = textBox1.Text;
        string destinationfolder = (@"C:\annqcfiles");
        string[] files = Directory.GetFiles(sourcefolder1, lines + "*.ann");
        foreach (string listBoxItem in listBox1.Items)
        {
         Directory.GetFiles(sourcefolder1, listBoxItem + "*.txt");
         StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt");
        }

它完美地創建了文件,只是不向文件添加任何內容。 我真正想要的只是在getfiles結果中找到的文件的文件名。

感謝您的任何建議。

    foreach (string listBoxItem in listBox1.Items)
    {
     using (StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt"))
     {
           foreach (string fileName in Directory.GetFiles(sourcefolder1, listBoxItem + "*.txt"))
           {
                 output.WriteLine(fileName);
           }
     }
    }

由於GetFiles返回一個string[]不使用StreamWriter 在所有 -只是

File.WriteAllLines(path, files);

其中files是要寫入的路徑的string[] ,而path是目標文件。

兩件事情。 首先,您實際上需要將數據寫入StreamWriter,其次您需要確保關閉StreamWriter,以便將其實際刷新到文件中。

嘗試這個:

foreach (string listBoxItem in listBox1.Items)
{
    String[] filesInFolder Directory.GetFiles(sourcefolder1, listBoxItem + "*.txt");

    using(StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt"))
    {
        foreach(string filename in filesInFolder)
        {
            output.Write(filename);
        }
    }
}

using語句確保當執行通過using塊時,關閉StreamWriter。

另外,如果這就是您要寫入文件的全部內容,則可以查看Files.WriteAllLines(...)方法。

您必須關閉StreamWriter.

或者將您的StreamWriter包裝在using語句中,這將自動處理並關閉您的流。
這背后的原因是您的流會將輸出保留在緩沖區中,並且僅在以下情況下將其寫入文件:
-達到一定的閾值
-您顯式調用沖洗
-關閉或處理流

您應該將streamwriter封裝在using語句中,這將刷新並關閉streamwriter

using(StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt"))
{
    //Any code that writes in output
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM