作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想做的是在 C# (C Sharp) 中使用 FTP 上传网站。所以我需要上传文件夹中的所有文件和文件夹,并保持其结构。我正在使用这个 FTP 类:http://www.codeproject.com/Tips/443588/Simple-Csharp-FTP-Class用于实际上传。
我得出的结论是,我需要编写一个遍历主目录的每个子目录并上传其中的所有文件和文件夹的递归方法。这应该将我的文件夹精确复制到 FTP。问题是......我不知道如何编写这样的方法。我以前写过递归方法,但我是 FTP 部分的新手。
这是我目前所拥有的:
private void recursiveDirectory(string directoryPath)
{
string[] filePaths = null;
string[] subDirectories = null;
filePaths = Directory.GetFiles(directoryPath, "*.*");
subDirectories = Directory.GetDirectories(directoryPath);
if (filePaths != null && subDirectories != null)
{
foreach (string directory in subDirectories)
{
ftpClient.createDirectory(directory);
}
foreach (string file in filePaths)
{
ftpClient.upload(Path.GetDirectoryName(directoryPath), file);
}
}
}
但它远未完成,我不知道如何继续。我敢肯定,比我更需要知道这一点!提前致谢:)
哦还有...如果它也能报告它的进度就好了:)(我正在使用进度条)
编辑:可能不清楚...如何使用 FTP 上传包含所有子目录和文件的目录?
最佳答案
好吧,我设法自己编写了方法。如果有人需要,请随时复制:
private void recursiveDirectory(string dirPath, string uploadPath)
{
string[] files = Directory.GetFiles(dirPath, "*.*");
string[] subDirs = Directory.GetDirectories(dirPath);
foreach (string file in files)
{
ftpClient.upload(uploadPath + "/" + Path.GetFileName(file), file);
}
foreach (string subDir in subDirs)
{
ftpClient.createDirectory(uploadPath + "/" + Path.GetFileName(subDir));
recursiveDirectory(subDir, uploadPath + "/" + Path.GetFileName(subDir));
}
}
效果很好:)
关于C# 使用 FTP 上传整个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13311975/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!