2015-10-02 39 views
0

我有一個變量誰得到一個目標:如何獲取文件的名稱以及如何在指定行之前添加新行?

var lin = (Path + "config.ini").ToString(); 
var lines = File.ReadAllLines(lin); 
var InstallerFile = lines.Where(txt => txt.Contains("IstallerFile=")) 
        .Select(txt => txt.Split('=')[1].Replace("\"", "")).FirstOrDefault(); 

後,我運行此代碼,我將有:InstallerFile=D:\folder\instaler.iniInstallerFile=D:\folder\instaler_input.ini這取決於我在config文件。 現在o複製到該文件中C:\temp\本:

if (File.Exists(InstallerFile)) 
    System.IO.File.Copy(InstallerFile, @"C:\temp\"); 

,現在我想驗證什麼名字有文件,因爲行是不同的。如果我有installer.ini脫穎而出的例子,我需要這樣做:

var modifiedLines = linesInst.Select(line => 
{ 
    if (line.StartsWith("destination=")) 
     return string.Format("destination=\"{0}", textBox1.Text); 
    else 
     return line; 
}); 

File.WriteAllLines(InstallerFile, modifiedLines); 

,如果我有installer_input.ini我需要誰與#product=MAtlab開始行之前在這個文件中添加一行。 所以我有一個問題,如何獲取文件的名稱以及如何在指定的行之前添加新行?

+0

如果這是一個允許用戶設置配置的配置文件,那麼爲什麼*邏輯取決於特定值?! – poke

+0

,因爲安裝使用installer.ini文件。請你給我一個答案? – user

回答

0

你可以用這個獲取文件的名稱:

Path.GetFileName(path) 

之前插入指定的行請您務必閱讀文件,當你發現你推新元素的特定行新行。示例代碼是這樣的:

string path=Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"32901448","InputFle.txt"); 
      string[] lines = File.ReadAllLines(path); 
      List<string> linesOut = new List<string>(); 
      foreach (string line in lines) 
      { 
       if (line.ToUpper().Trim() == "BLUE") 
       { 
        linesOut.Add("YELLOW");  
       } 
       linesOut.Add(line); 
      } 

      File.WriteAllLines(path, linesOut); 
+0

這是什麼意思這個號碼是「32901448」? – user

+0

並與此Path.GetFileName(路徑),你得到所有的文件名,我需要驗證,如果我有installer.ini或installer_input.ini – user

+0

32901448是一個子文件夾,其中是我的文件例如:C:/ 32901448/InputFle。文本。 –

相關問題