【问题标题】:Can't add files to listbox...READ无法将文件添加到列表框...阅读
【发布时间】:2013-04-10 19:26:02
【问题描述】:

我正在使用代码显示列表框中的所有启动项,环境变量为“%appdata% 这段代码中有一些错误,我需要帮助...... 检查代码中的注释错误

是否还有其他解决方案但仍在使用 %appdata%?

这是代码:

    private void readfiles()
    {
        String startfolder = Environment.ExpandEnvironmentVariables("%appdata%") + "\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
        foldertoread(startfolder);
    }

    private void foldertoread(string folderName)
    {
        FileInfo[] Files = folderName.GetFiles("*.txt"); // HERE is one error "Getfiles"
        foreach (var file in Directory.GetFiles(folderName))
        {
            startupinfo.Items.Add(file.Name); // here is another error "Name"

        }
    }

【问题讨论】:

  • 以后不要只说“有错误”。很高兴您指出它在哪一行,但是知道错误是什么对于那些试图帮助您的人很有用。在这种情况下,这是相当明显的,但否则可能不会。

标签: c# listbox environment appdata


【解决方案1】:

这行不起作用,因为folderName 是一个字符串(并且没有GetFiles 方法):

FileInfo[] Files = folderName.GetFiles("*.txt");

发生第二个错误是因为file 变量是包含文件名的string。您无需拨打file.Name,只需尝试以下操作:

startupinfo.Items.Add(file);

【讨论】:

  • 我想要“名称”的问题是我只想显示名称,而不是整个 location+filename.extension 另一个解决方案当然值得赞赏!当我按照您所说的进行更改时,出现此错误.. 无法在此行上将类型 'string[]' 隐式转换为 'System.IO.FileInfo[]': FileInfo[] Files = folderName.GetFiles("*.txt") ;
  • 只需在file 变量上使用Path.GetFileNameWithoutExtension(),如下所示:startupinfo.Items.Add(Path.GetFileNameWithoutExtension(file));
【解决方案2】:

我认为您不需要以下行:

FileInfo[] Files = folderName.GetFiles("*.txt");

foreach 循环将生成您需要的内容。 其次,file 变量是一个字符串,所以不要调用:

startupinfo.Items.Add(file.Name);

...改为调用:

startupinfo.Items.Add(file);

最后,您可以使用字符串代替 var 类型的循环,并且可以指定文件类型过滤器:

foreach (string fileName in Directory.GetFiles(folderName, "*.txt"))

【讨论】:

    【解决方案3】:

    string 对象没有GetFiles() 方法。试试这个:

    string startfolder = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
    
    string[] files = Directory.GetFiles(startfolder, "*.txt");
    
    foreach (string file in files)
    {
       startupinfo.Items.Add(Path.GetFileNameWithoutExtension(file));
    }
    

    Path.GetFileNameWithoutExtension(file) 只返回文件名而不是完整路径。

    【讨论】:

    • 谢谢!不知道启动是一个特殊的文件夹!用过你的代码:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多