gpt4 book ai didi

c# - 列出网络位置的所有共享文件夹

转载 作者:太空狗 更新时间:2023-10-29 23:30:58 29 4
gpt4 key购买 nike

我想列出来自网络服务器的所有共享目录。

列出我使用的共享网络目录中的目录

Directory.GetDirectories(@"\\server\share\")

问题是我想列出 \\server 上的所有文件夹。

如果我使用相同的方法,我会得到一个异常提示

The UNC path should be of the form \server\share

我找遍了所有地方,找不到解决方案。

有人知道我应该怎么做才能在 \\share 中显示文件夹吗?

最佳答案

我知道这个线程很旧,但这个解决方案最终可能会对某人有所帮助。我使用命令行,然后从其包含目录名称的输出中返回一个子字符串。

    static void Main(string[] args)
{
string servername = "my_test_server";
List<string> dirlist = getDirectories(servername);
foreach (var dir in dirlist)
{
Console.WriteLine(dir.ToString());
}
Console.ReadLine();
}

public static List<string> getDirectories (string servername)
{
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.Start();
cmd.StandardInput.WriteLine("net view \\\\" + servername);
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
string output = cmd.StandardOutput.ReadToEnd();
cmd.WaitForExit();
cmd.Close();
List<string> dirlist = new List<string>();
if(output.Contains("Disk"))
{
int firstindex = output.LastIndexOf("-") + 1;
int lastindex = output.LastIndexOf("Disk");
string substring = ((output.Substring(firstindex, lastindex - firstindex)).Replace("Disk", string.Empty).Trim());
dirlist = substring.Split('\n').ToList();
}
return dirlist;
}

关于c# - 列出网络位置的所有共享文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25608698/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com