Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “隐藏”;。txt";扩展名和从文件夹加载文件名_C# - Fatal编程技术网

C# “隐藏”;。txt";扩展名和从文件夹加载文件名

C# “隐藏”;。txt";扩展名和从文件夹加载文件名,c#,C#,我需要在“组合框”中隐藏“.txt”扩展名,我不知道如何隐藏 我如何做到这一点,文件将从addresesr和某个文件夹加载?现在我使用以下代码: 我现在正在使用此代码: DirectoryInfo di = new DirectoryInfo(@"C:\Users\JD_1609\source\repos\WindowsFormsApp1\WindowsFormsApp1\bin\Debug\PCs"); FileInfo[] Files = di.GetFiles("*.txt"); co

我需要在“组合框”中隐藏“.txt”扩展名,我不知道如何隐藏

我如何做到这一点,文件将从addresesr和某个文件夹加载?现在我使用以下代码:

我现在正在使用此代码:

DirectoryInfo di = new DirectoryInfo(@"C:\Users\JD_1609\source\repos\WindowsFormsApp1\WindowsFormsApp1\bin\Debug\PCs");
FileInfo[] Files = di.GetFiles("*.txt");

comboBox1.DataSource = Files;
comboBox1.DisplayMember = "Name";
但是如果我把它转移到其他电脑上,它就不能正常工作了?
那么我如何从实际地址加载文件呢?

要获得不包含扩展名的文件名,可以使用
Path
类的漂亮方法

如果您希望数据源显示不带扩展名的名称,但将“value”保留为
FileInfo
,则可以使用一点Linq将
FileInfo[]
转换为
字典
,然后适当设置display和value成员属性:

comboBox1.DataSource = new BindingSource(
                           Files.ToDictionary(x => Path.GetFileNameWithoutExtension(x.Name), 
                                              x => x), 
                           null);
comboBox1.DisplayMember = "Key";
comboBox1.ValueMember = "Value";
请记住,
字典
不能有重复的键。在您的代码中,您获取单个目录的所有文本文件,因此即使我们去掉扩展名,也可以确定不会有重复的。如果您更改查询的方式会在字典中引入重复项,我的答案将抛出异常

如果您只需要显示和值作为文件名,而不需要扩展名,则更容易:

comboBox1.DataSource = Files
                           .Select(x => Path.GetFileNameWithoutExtension(x.Name))
                           .ToArray();

如何在组合框中显示文件?与其显示扩展名为的文件,不如只显示名称,以便。。。显示如何将其分配给组合框…我现在正在使用以下代码:DirectoryInfo di=new DirectoryInfo(@“C:\Users\JD_1609\source\repos\windowsformsap1\windowsformsap1\bin\Debug\PCs”);FileInfo[]Files=di.GetFiles(“*.txt”);comboBox1.DataSource=文件;comboBox1.DisplayMember=“Name”;您希望您的值是完整路径吗?只有带扩展名的名称?我只需要将文件名写入combobox而不带扩展名。当我尝试使用它时,它会写入:“System.ArgumentException:结构化数据绑定对象接收IList或IListSource作为数据源。”@JD_1609查看我编辑的回答,现在它的写入错误是:“参数1:无法从System.IO.FileInfo转换为字符串。”:D-当我使用该参数时,会更容易way@JD_1609抱歉,这是漫长的一天。我刚刚更新。它应该是
Path.GetFileNameWithoutExtension(x.Name)
而不是
Path.GetFileNameWithoutExtension(x)
np,它的工作现在非常感谢您!)