使用文件夹对话框浏览包含特定文件的文件夹...
private void btnBrowse_Click(object sender, EventArgs e)
{
DialogResult result = fbdPath.ShowDialog();
if (result == DialogResult.OK)
{
string[] files = Directory.GetFiles(fbdPath.SelectedPath);
txtPath.Text = fbdPath.SelectedPath;
MessageBox.Show(txtPath.Text.ToString());
}
}
更新文件......
try
{
String path = txtPath.Text;
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] files = dir.GetFiles();
foreach( FileInfo file in files)
{
StreamReader sReader;
sReader = File.OpenText(dir + @"\" + file.Name );
StreamWriter sWriter = new StreamWriter(@"f:\" + file.Name);
while (sReader.EndOfStream == false)
{
string contents = sReader.ReadLine();
String Flag = contents.Substring(655, 29);
String emBossFName = contents.Substring(41, 40);
String emBossLName = contents.Substring(121, 40);
String emBossFullName = emBossFName.Trim() + " " + emBossLName.Trim();
String newString = emBossFullName;
sWriter.WriteLine(contents.Replace(Flag, newString));
}
sWriter.Close();
sReader.Close();
}
}
catch (IOException ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
我需要替换一个29个字符的字符串的第655个位置(由空格分隔的人的名字和姓氏的组合),但问题是如何保持字符串的固定长度,这是长度为685个字符?
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为你应该让newString
完全长29个字符:
if (newString.Length > 29) newString = newString.Substring(0, 29);
if (newString.Length < 29) newString = newString.PadRight(29);
如果字符串短于29个字符,则此代码修剪字符串,如果字符串短于29个字符,则使用空格键入右边的字符串。
答案 2 :(得分:-1)
您可以使用StringBuilder类。
Ex:将defg
替换为1234
StringBuilder sb = new StringBuilder( "abcdefghi");
var newstr = sb.Remove(3, 4).Insert(3, "1234").ToString();