获取共享文件夹系统路径,但代码返回相同路径的共享文件夹,如“@\123.1.1.56\Pagal”
DirSearch("\\\\DESKTOP-2FFGFDM\\Packages");
static void DirSearch(string dir, string rootDir = null)
{
if (rootDir == null)
{
rootDir = dir;
}
try
{
foreach (string f in Directory.GetFiles(dir))
{
string filename = f.Substring(rootDir.Length);
Console.WriteLine(filename);
}
foreach (string d in Directory.GetDirectories(dir))
{
Console.WriteLine(d);
DirSearch(d, rootDir);
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}我找不到共享文件夹系统路径,所以请。帮帮我.提前感谢
发布于 2019-09-06 17:00:00
要测试网络共享是否存在,可以使用DirectoryInfo
static void DirSearch(string dir, string rootDir = null)
{
if(!new DirectoryInfo(dir).Exists)
throw new Exception($"the provided directory {dir} is not valid.")
if (rootDir == null)
{
rootDir = dir;
}
try
{
foreach (string f in Directory.GetFiles(dir))
{
string filename = f.Substring(rootDir.Length);
Console.WriteLine(filename);
}
foreach (string d in Directory.GetDirectories(dir))
{
Console.WriteLine(d);
DirSearch(d, rootDir);
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}但是,如果这是递归编程的学校作业,那么您可以只获取所有文件和directory without the recursion
foreach (string f in Directory.GetFiles(dir,"*.*",SearchOption.AllDirectories))
{
string filename = f.Substring(rootDir.Length);
Console.WriteLine(filename);
}因为这些文件来自目录,所以您可以从名称中获取这些文件
var dir="";
foreach (string f in Directory.GetFiles(dir,"*.*",SearchOption.AllDirectories))
{
string filename = f.Substring(rootDir.Length);
var directoryName = new FileInfo(filename).Directory.FullName;
if(directoryName!=dir)
{
Console.WriteLine(filename);
dir= directoryName ;
}
Console.WriteLine(filename);
}https://stackoverflow.com/questions/57818546
复制相似问题