大家好,我希望有人可以帮助我。我创建了一个程序。它执行以下操作。
从我的网站下载文件
将文件放在HDD的临时文件夹中
将文件上传到目标文件夹
删除临时文件夹和文件。
现在一切都很好。运行程序时,输入ftp info,user,pass,host和destination目录
现在,如果主持人说ftp://mysite.com并且放入文件的目录是appz,那么想法是在public_html中创建文件夹然后将文件上传到新创建的文件夹然而ISSUE是它上传文件时它没有进入public_html文件夹,而是将它放在根目录中,如果你试图查看它,则无法通过url访问它。
这是完成所有工作的功能我希望有人可以看到我不会看到的内容我将以粗体显示上传部分的代码行。
public void CopyFilesBetweenFtpDirectories(string destHost, string destUsername, string destPassword, string destDirectory, BackgroundWorker worker)
{
SessionOptions sessionOptionsSource = new SessionOptions
{
Protocol = Protocol.Ftp,
UserName = username,
HostName = "mydomain.com",
Password = password,
};
SessionOptions sessionOptionsDestination = new SessionOptions
{
Protocol = Protocol.Ftp,
UserName = destUsername,
HostName = destHost,
Password = destPassword
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptionsSource);
// Download files
worker.ReportProgress(10);
session.GetFiles("/domainwithfiles.com/AppFiles/*", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Downloaded_files_from_ftp\*").Check();
worker.ReportProgress(50);
}
using (Session session = new Session())
{
// Connect
session.Open(sessionOptionsDestination);
// Upload files
**session.PutFiles(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Downloaded_files_from_ftp\*", "public_html" + "/" + destDirectory).Check();**
// session.PutFiles(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Downloaded_files_from_ftp\*", destDirectory + "/").Check();
}
worker.ReportProgress(90);
//deleteing local files
DeleteLocalDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Downloaded_files_from_ftp");
worker.ReportProgress(100);
}
您想要查看的代码行是
session.PutFiles(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+ @“\ Downloaded_files_from_ftp *”,“public_html”+“/”+ destDirectory).Check();
当你看到它上传文件但不是所有文件时,所以我认为我的目的地错了。
帮助会很棒。