C#怎么获取一个文件夹下面的子文件夹,和其他关于操作文件夹的问题?

1.我想知道我指定的一个文件夹下面有几个子文件夹和每个子文件夹的名称,然后放到数组里,该怎么做?2。创建文件夹的时候,如果这个文件夹已存在,怎么知道他已存在?... 1.我想知道我指定的一个文件夹下面有几个子文件夹和每个子文件夹的名称,然后放到数组里,该怎么做?
2。创建文件夹的时候,如果这个文件夹已存在,怎么知道他已存在?
展开
 我来答
百度网友113faafa67c
2011-01-28 · TA获得超过1839个赞
知道小有建树答主
回答量:1200
采纳率:0%
帮助的人:931万
展开全部
需要用迭代函数吧所有深度的目录遍历。
函数遍历时,分开文件和子文件夹处理。文件的话更名移动,子文件夹就可以再次调用本方法处理。其结果就是遍历全部的文件夹。

------------------------------------------------------
代码基本上是这样的,需要修改移动的文件名的话,修改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));
}
}
Allen穆迪埃
2015-06-28 · TA获得超过7137个赞
知道大有可为答主
回答量:8378
采纳率:0%
帮助的人:3536万
展开全部
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);
              
        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你是谁LCqTt
推荐于2016-05-12 · TA获得超过602个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:857万
展开全部
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");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eade9c08
2011-01-27
知道答主
回答量:39
采纳率:0%
帮助的人:20.9万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大祁叔叔
2011-01-27 · TA获得超过162个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:91.2万
展开全部
File FileInfo directory
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式