有什么方法可以获取逻辑驱动器中的文件列表(路径错误)?



我正在为自己编写一个应用程序,用于备份我以前选择的文件!我选择要添加到列表中的逻辑驱动器,它应该获取路径中的文件列表并执行我告诉它的其他事情:)

我可以说我搜索了所有网络!我试图结合路径,获取驱动器信息和.....最后一个代码我,尝试是这样的:

foreach (var drivename in driveslist)
{
string[] files = Directory.GetFiles(drivename, "*.*");
}

编辑:driveslist包含:

C
E
D

System.IO.DirectoryNotFoundException:"找不到路径'C:\ E'的一部分。

GetFiles 似乎不明白它是您要列出的驱动器。

尝试确保您的驱动器列表包含类似 {@"C:\"、@"D:\"} 等内容。

编辑: 或者,如果您无法控制上游列表,只需执行以下操作:

foreach (var drivename in driveslist)
{
string[] files = Directory.GetFiles($"{drivename}:\", "*.*");
}

编辑2: 我很惊讶这不起作用。以下代码适用于我的机器:

class Program
{
static void Main(string[] args)
{
var driveslist = new[] {"C"};
foreach (var drivename in driveslist)
{
string[] files = Directory.GetFiles($"{drivename}:\", "*.*");
foreach (var file in files)
{
Console.WriteLine(file);
}
}
Console.ReadLine();
}
}

这听起来好像driveslist包含字符串'C: E',这不是一个有效的路径。

我刚刚尝试过:

string[] files = Directory.GetFiles("c:\", "*.*");

它有效。我认为你在责怪GetFiles但问题实际上出在路径上。

如果你只要求e(没有冒号和斜杠(,它会认为你想要一个名为当前目录e的子文件夹。

最新更新