无法转换为"字符串" C#

时间:2017-08-01 16:47:49

标签: c#

我正在创建一个学校项目,老师用隐私说了些什么,我正在制作一个加密工具,但总是在EncryptFile(文件,密码)代码中返回给我这个错误

  

无法将System.Collections.Generic.List转换为"字符串"

这是函数,然后将特定目录中的所有文件列出到List字符串,忽略异常

#gnome-games

如何绕过此错误?抱歉,如果这是一个糟糕的问题,我是新手

如果需要theres是函数,那么加密文件

public List<string> GetFiles(string path, string pattern)
{
    var files = new List<string>();
    try
    {
        files.AddRange(Directory.GetFiles(path, pattern, SearchOption.TopDirectoryOnly));
        foreach (var directory in Directory.GetDirectories(path))
            files.AddRange(GetFiles(directory, pattern));
    }
    catch (Exception ex)
    {
        // unnautorized files
    }
    return files;

    string password = ChooseUrPass.Text
    EncryptFile(files, password); //here happen the error
}

感谢您的时间

3 个答案:

答案 0 :(得分:0)

看起来EncryptFile需要它的第一个参数是一个字符串,你给它files,这是一个字符串列表。

我建议用这种方式解决它:

foreach(string s in files)
{
    EncryptFile(s, password);
}

答案 1 :(得分:0)

函数EncryptFile(string file, string password)期望类型为string,但您传递的是List<string>

类型的变量

试试这个:

foreach(string file in files) {
    EncryptFile(file, password);
}

答案 2 :(得分:0)

您不需要List<string>和手工递归。试试这段代码:

public List<string> GetFiles(string path, string pattern)
{
    foreach (var file in Directory.GetFiles(path, pattern))
    {
        EncryptFile(file, password);
    }
}