C# 为字符串数组的每个项目设置特定的开始和结束位置
C# Set Specific Start & End Position For Each Item Of A String Array
我正在尝试读取特定文件夹中所有文件的名称,然后将每个文件名作为一个项目添加到列表框中。问题是这样做时我的列表框显示了完整的文件路径。
我尝试了多种方法,感觉从每个项目中删除 "C:\Client\TestFolder\" & ".txt" 应该非常容易。但是似乎没有任何效果:(非常感谢任何帮助!
string[] filePaths = Directory.GetFiles(@"C:\Client\TestFolder\", "*.txt", SearchOption.TopDirectoryOnly);
listBox1.Items.AddRange(filePaths);
string[] titleArray = new string[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++)
{
titleArray[i] = listBox1.Items[i].ToString();
}
Array.Sort(titleArray);
listBox1.Items.Clear();
for (int i = 0; i < titleArray.Length; i++)
{
listBox1.Items.Add(titleArray[i].ToString());
}
例如,如果文件路径 C:\Client\TestFolder\ 包含 3 个 .txt 文件:
- test1.txt
- test2.txt
- test3.txt
我的列表框将显示:
- C:\Client\TestFolder\test1.txt
- C:\Client\TestFolder\test2.txt
- C:\Client\TestFolder\test3.txt
期望的结果:
- 测试1
- 测试2
- 测试3
您可以使用 Path.GetFileNameWithoutExtension.
使用您的代码的示例:
string[] filePaths = Directory.GetFiles(@"C:\Client\TestFolder\", "*.txt", SearchOption.TopDirectoryOnly);
listBox1.Items.AddRange(filePaths);
string[] titleArray = new string[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++)
{
titleArray[i] = listBox1.Items[i].ToString();
}
Array.Sort(titleArray);
listBox1.Items.Clear();
for (int i = 0; i < titleArray.Length; i++)
{
listBox1.Items.Add(Path.GetFileNameWithoutExtension(titleArray[i]));
}
我正在尝试读取特定文件夹中所有文件的名称,然后将每个文件名作为一个项目添加到列表框中。问题是这样做时我的列表框显示了完整的文件路径。
我尝试了多种方法,感觉从每个项目中删除 "C:\Client\TestFolder\" & ".txt" 应该非常容易。但是似乎没有任何效果:(非常感谢任何帮助!
string[] filePaths = Directory.GetFiles(@"C:\Client\TestFolder\", "*.txt", SearchOption.TopDirectoryOnly);
listBox1.Items.AddRange(filePaths);
string[] titleArray = new string[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++)
{
titleArray[i] = listBox1.Items[i].ToString();
}
Array.Sort(titleArray);
listBox1.Items.Clear();
for (int i = 0; i < titleArray.Length; i++)
{
listBox1.Items.Add(titleArray[i].ToString());
}
例如,如果文件路径 C:\Client\TestFolder\ 包含 3 个 .txt 文件:
- test1.txt
- test2.txt
- test3.txt
我的列表框将显示:
- C:\Client\TestFolder\test1.txt
- C:\Client\TestFolder\test2.txt
- C:\Client\TestFolder\test3.txt
期望的结果:
- 测试1
- 测试2
- 测试3
您可以使用 Path.GetFileNameWithoutExtension.
使用您的代码的示例:
string[] filePaths = Directory.GetFiles(@"C:\Client\TestFolder\", "*.txt", SearchOption.TopDirectoryOnly);
listBox1.Items.AddRange(filePaths);
string[] titleArray = new string[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++)
{
titleArray[i] = listBox1.Items[i].ToString();
}
Array.Sort(titleArray);
listBox1.Items.Clear();
for (int i = 0; i < titleArray.Length; i++)
{
listBox1.Items.Add(Path.GetFileNameWithoutExtension(titleArray[i]));
}