在我的目录中找到一个文件
本文关键字:一个 文件 我的 | 更新日期: 2023-09-27 18:10:51
我需要得到一个文件的路径,这是在一个特定的目录。用户从OpenFileDialog中选择csv文件。如果csv文件具有以.txt结尾的字段,则获取该文件的路径并将其放入pathfile变量中。新文件必须由用户放置在与csv文件相同的目录中。
EDIT: 如何将文件的路径放在变量中?
EDIT2:文件可以放在任何地方,例如:C://george.csv
。所以我想从目录c://
中取出一个txt文件。或者如果文件在这里:C://Documents/anna.csv
。文本必须为C://Documents/textfile.txt
。
EDIT3:用户打开的csv文件位于c://Documents/gonow.csv
"gonow.csv"文件为:one, two, tree, four, textfile.txt, five, six, seven
。当一个字段的扩展名为.txt时,程序必须执行并捕获该路径。在本例中,路径为c://Documents/textfile.txt
。
private void button3_Click(object sender, EventArgs e)
{
string filename = "";
DialogResult result = openFileDialog2.ShowDialog();
if (result == DialogResult.OK)
{
filename = openFileDialog2.FileName;
textBox3.Text = filename;
System.IO.StreamReader file2 = new System.IO.StreamReader(textBox3.Text);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (Path.GetExtension(colB[j]) == ".csv")
textBox2.Text += " comma separated, in line " + j + "" + Environment.NewLine;
}
Try
string path = Path.GetDirectoryName(filename);
根据您的EDIT3编辑:
使用此函数打开csv文件并获得新的完整文件名。
private string GetFilename(string csvFilename)
{
string path = Path.GetDirectoryName(csvFilename);
string[] lines = File.ReadAllLines(csvFilename);
foreach (string line in lines)
{
string[] items = line.Split(',');
string txt = items.First(item => item.ToLower().Trim().EndsWith(".txt"));
if (!String.IsNullOrEmpty(txt))
return Path.Combine(path, txt);
}
return "";
}
如果需要将txt文件(生成的文件)与CSV文件放在同一个文件夹中,可以将CSV文件的路径存放,并在该文件夹中创建txt文件。
要做到这一点,你可能需要有一个这样的变量:
private void button3_Click(object sender, EventArgs e)
{
string filename = "";
string FolderPath;
DialogResult result = openFileDialog2.ShowDialog();
if (result == DialogResult.OK)
{
filename = openFileDialog2.FileName;
FolderPath = Path.GetDirectoryName(filename);
textBox3.Text = filename;
System.IO.StreamReader file2 = new System.IO.StreamReader(textBox3.Text);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (Path.GetExtension(colB[j]) == ".csv")
textBox2.Text += " comma separated, in line " + j + "" + Environment.NewLine;
}
FolderPAth变量保存文件夹的路径。您可以在此文件夹中创建文本文件。这意味着txt文件与csv文件在同一个文件夹中。如果你需要在不同的方法中访问它,你可以在相关的作用域中声明它。