Server.MapPath()不讀取文件,它只是根據您的服務器的相對路徑爲您提供正確的絕對路徑。如果你想在文件中讀取並寫入到一個文件,然後嘗試這樣的事情,
string filenameA = HttpContext.Current.Server.MapPath("~\\Scripts\\File1.js"));
string filenameB = HttpContext.Current.Server.MapPath("~\\Scripts\\File2.js"));
string fileContentA = File.ReadAllText(filenameA);
string fileContentB - Flie.ReadAllText(filenameB);
System.IO.File.WriteAllText("filename", fileContentA + "\n" + fileContentB);
現在,如果你有很多文件要附加在一起,然後用StringBulider將是途徑去提高性能。
StringBuilder sb = new StringBuilder();
foreach (string filename in filenames)
sb.AppendLine(File.ReadAllText(filename));
File.WriteAllText(sb.ToString());
此外,如果文件非常大,不適合到內存中,你可以使用文件流剛剛從源流和附加到主文件。
foreach (string filename in filenames)
{
using (FileStream srcFile = new FileStream(filename, FileMode.Open, FileAccess.Read))
using (FileStream desFile = new FileStream(targetFilename, FileMode.Append, FileAccess.Write))
srcFile.CopyTo(desFile);
}