【发布时间】:2015-05-07 10:35:11
【问题描述】:
我真的需要下一个场景的解决方案(我一直在寻找几个小时并在灌木丛中跳来跳去以找到一个顺利的解决方案,但没有一个奏效):
我有一个winform:
- 解析文本文件
- 使用该文件中的随机单词生成一些文件夹
到目前为止我的代码:
int value;
string path = null;
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog(this) == DialogResult.OK)
{
path = fbd.SelectedPath;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
value = Convert.ToInt32(textBox1.Text);//store the value from the textbox in variable "value"
}
private void button2_Click(object sender, EventArgs e)
{
if (path != null && Directory.Exists(path))
for (int i = 0; i < value; i++)
{
Random rnd = new Random();
string tick1 = rnd.Next(0, 10).ToString();
var lines = File.ReadAllLines(@"M:\\dictionar.txt");
var r = new Random(DateTime.Now.Millisecond);
var randomLineNumber = r.Next(0, lines.Length - 1);
var line = lines[randomLineNumber];
StringBuilder b = new StringBuilder();
for (int j = 0; j < line.Length; j++)
{
char c = line[j];
if (rnd.Next(2) == 0)
{
c = Char.ToUpper(c);
}
b.Append(c);
if (j % 3 == 2)
{
b.Append(rnd.Next(10));
}
}
line = b.ToString();
Directory.CreateDirectory(Path.Combine(path, string.Format("{0}", line.Insert(2, tick1).Insert(4, tick1).Insert(6, tick1))));
}
}
有没有办法将ToUpper() 方法用作line.Insert() 方法,以便我可以得到随机的大写字母?此外,有没有更好的方法将这些索引位置随机化为line.Insert()(我问这个是因为当它生成文件夹名称时:索引是相同的:例如 pe8rs8on8al ,然后索引发生变化。)?
我想实现以下目标:
如果我在 .txt 文件中有下一个单词:
个人
足球
编程
电脑
我希望文件夹名称看起来像:
Pe3rs9oN1al
fO8ot5Ba6lL
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
好的。感谢您的提醒
标签: c# winforms visual-studio visual-studio-2012