我需要读取一个本地文本文件,每行都有一个文件名。每个文件名都需要修剪它的扩展名。当我到达需要将修剪结果保存到另一个阵列的部分时,我遇到了一些麻烦。
到目前为止,我有:
string path = @"C:\Users\path\file.txt";
string[] readText = File.ReadAllLines(path);
foreach (string s in readText)
{
string result = Path.GetFileNameWithoutExtension(s);
//here I can print the result to the screen
//but I don't know how to save to another array for further manipulation
}
如果您需要进一步澄清,我会尽力更清楚。 提前致谢。
答案 0 :(得分:4)
您也可以使用Linq执行此操作:
var path = @"C:\Users\path\file.txt";
var trimmed =
File.ReadAllLines(path)
.Select(Path.GetFileNameWithoutExtension)
.ToArray();
答案 1 :(得分:3)
使用for
循环代替foreach
:
string path = @"C:\Users\path\file.txt";
string[] readText = File.ReadAllLines(path);
for( int i = 0; i < readText.Length; i++ )
readText[i] = Path.GetFileNameWithoutExtension( readText[i] );
答案 2 :(得分:0)
分配一个与原始数组大小相同的新数组,然后通过索引进行插入。
string path = @"C:\Users\path\file.txt";
string[] readText = File.ReadAllLines(path);
string[] outputArray = new string[readText.Length];
int index = 0;
foreach (string s in readText)
{
outputArray[index++] = Path.GetFileNameWithoutExtension(s);
}