C#怎么获取一个文件夹下面的子文件夹,和其他关于操作文件夹的问题?
1.我想知道我指定的一个文件夹下面有几个子文件夹和每个子文件夹的名称,然后放到数组里,该怎么做?2。创建文件夹的时候,如果这个文件夹已存在,怎么知道他已存在?...
1.我想知道我指定的一个文件夹下面有几个子文件夹和每个子文件夹的名称,然后放到数组里,该怎么做?
2。创建文件夹的时候,如果这个文件夹已存在,怎么知道他已存在? 展开
2。创建文件夹的时候,如果这个文件夹已存在,怎么知道他已存在? 展开
5个回答
展开全部
需要用迭代函数吧所有深度的目录遍历。
函数遍历时,分开文件和子文件夹处理。文件的话更名移动,子文件夹就可以再次调用本方法处理。其结果就是遍历全部的文件夹。
------------------------------------------------------
代码基本上是这样的,需要修改移动的文件名的话,修改file.MoveTo(Path.Combine(p_2, file.Name));这句就可以了。
private void button2_Click(object sender, EventArgs e)
{
if (!(!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox3.Text)))
{
MessageBox.Show("没有填写源和目的路径");
}
//目录不可同源,否则将有可能出现循环调用
MoveFolderTo(textBox1.Text, textBox3.Text);
}
/// <summary>
/// 从一个目录将其内容移动到另一目录
/// </summary>
/// <param name="p">源目录</param>
/// <param name="p_2">目的目录</param>
private void MoveFolderTo(string p, string p_2)
{
//检查是否存在目的目录
if (!Directory.Exists(p_2))
Directory.CreateDirectory(p_2);
//先来移动文件
DirectoryInfo info = new DirectoryInfo(p);
FileInfo[] files = info.GetFiles();
foreach (FileInfo file in files)
{
file.MoveTo(Path.Combine(p_2, file.Name));
}
//最后移动目录
DirectoryInfo[] dirs = info.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
MoveFolderTo(Path.Combine(p, dir.Name), Path.Combine(p_2, dir.Name));
}
}
函数遍历时,分开文件和子文件夹处理。文件的话更名移动,子文件夹就可以再次调用本方法处理。其结果就是遍历全部的文件夹。
------------------------------------------------------
代码基本上是这样的,需要修改移动的文件名的话,修改file.MoveTo(Path.Combine(p_2, file.Name));这句就可以了。
private void button2_Click(object sender, EventArgs e)
{
if (!(!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox3.Text)))
{
MessageBox.Show("没有填写源和目的路径");
}
//目录不可同源,否则将有可能出现循环调用
MoveFolderTo(textBox1.Text, textBox3.Text);
}
/// <summary>
/// 从一个目录将其内容移动到另一目录
/// </summary>
/// <param name="p">源目录</param>
/// <param name="p_2">目的目录</param>
private void MoveFolderTo(string p, string p_2)
{
//检查是否存在目的目录
if (!Directory.Exists(p_2))
Directory.CreateDirectory(p_2);
//先来移动文件
DirectoryInfo info = new DirectoryInfo(p);
FileInfo[] files = info.GetFiles();
foreach (FileInfo file in files)
{
file.MoveTo(Path.Combine(p_2, file.Name));
}
//最后移动目录
DirectoryInfo[] dirs = info.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
MoveFolderTo(Path.Combine(p, dir.Name), Path.Combine(p_2, dir.Name));
}
}
展开全部
ArrayList a = new ArrayList();
DirectoryInfo d = new DirectoryInfo("c:\\");
FileInfo[] fis = d.GetFiles();
foreach (FileInfo fi in fis)
{
a.Add(fi.Name);
}
DirectoryInfo[] dis = d.GetDirectories();
foreach (DirectoryInfo di in dis)
{
a.Add(di.Name);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.
DirectoryInfo d = new DirectoryInfo("C:\\");//你想要的路径
DirectoryInfo[] items = d.GetDirectories();//该数组包含了子文件夹的信息
Console.WriteLine(items.Length);
foreach (var item in items)
{
Console.WriteLine(item.FullName);
}
2.Directory类有个静态方法Exists用于判断某文件夹是否存在:
if (Directory.Exists("C:\\Test"))
{
Console.WriteLine("Exists");
}
DirectoryInfo d = new DirectoryInfo("C:\\");//你想要的路径
DirectoryInfo[] items = d.GetDirectories();//该数组包含了子文件夹的信息
Console.WriteLine(items.Length);
foreach (var item in items)
{
Console.WriteLine(item.FullName);
}
2.Directory类有个静态方法Exists用于判断某文件夹是否存在:
if (Directory.Exists("C:\\Test"))
{
Console.WriteLine("Exists");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private List<string> GetFullFileName(string path)
{
List<string> filePath = new List<string>();
filePath.Add(path);
DirectoryInfo dir = new DirectoryInfo(path);
foreach (var item in dir.GetDirectories())
{
filePath.AddRange(GetFullFileName(item.FullName));
}
foreach (var item in dir.GetFiles())
{
filePath.Add(item.FullName);
}
return filePath;
}
{
List<string> filePath = new List<string>();
filePath.Add(path);
DirectoryInfo dir = new DirectoryInfo(path);
foreach (var item in dir.GetDirectories())
{
filePath.AddRange(GetFullFileName(item.FullName));
}
foreach (var item in dir.GetFiles())
{
filePath.Add(item.FullName);
}
return filePath;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
File FileInfo directory
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询