WinSCP.SessionRemoteException: 给定目录不是文件! (WinSCP & SSIS)

问题描述

我在 SSIS 中运行我的脚本任务时遇到一个奇怪的错误,我不明白为什么

我试图在外部 SFTP 服务器中获取最新文件,然后将其存储在我的本地环境中,在我放入 localPath 变量的目录中

明明不是文件,我介绍的是完整路径

错误信息:

Error: Error: WinSCP.Sessionremoteexception: «C:\Users\Downloads» is not a file!
   in WinSCP.OperationResultBase.Check()
   in ST_t5fbgt5564cf3a165da70892d8c435v.ScriptMain.Main()

我的代码

#region Namespaces
using System;
using Microsoft.sqlServer.Dts.Tasks;
using System.Data;
using Microsoft.sqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Linq;
using WinSCP;
#endregion

namespace ST_t5fbgt5564cf3a165da70892d8c435v
{
    [Microsoft.sqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
    public partial class ScriptMain :
        Microsoft.sqlServer.Dts.Tasks.ScriptTask.vstaRTScriptObjectModelBase
    {
        public void Main()
        {
            try
            { 
            Sessionoptions sessionoptions = new Sessionoptions
            {
                Protocol = Protocol.Sftp,HostName = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",UserName = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",Password = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",PortNumber = xx
            };

            using (Session session = new Session())
            {
                session.Open(sessionoptions);

                const string remotePath = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
                const string localPath = @"C:\Users\Downloads";

                RemoteDirectoryInfo directoryInfo = session.ListDirectory(remotePath);

                RemoteFileInfo latest =
                    directoryInfo.Files
                        .Where(file => !file.IsDirectory)
                        .OrderByDescending(file => file.LastWriteTime)
                        .FirstOrDefault();

                if (latest == null)
                {
                    throw new Exception("No found");
                }

                session.GetFiles(
                    RemotePath.EscapeFileMask(latest.FullName),localPath).Check();
            }
             Dts.TaskResult = (int)DTSExecResult.Success;
        }
            catch (Exception e)
            {
                Console.WriteLine("Error: (0)",e);
                return 1;

            }
            }


        #region ScriptResults declaration
        enum ScriptResults
        {
            Success = Microsoft.sqlServer.Dts.Runtime.DTSExecResult.Success,Failure = Microsoft.sqlServer.Dts.Runtime.DTSExecResult.Failure
        };
        #endregion

    }
}

这是怎么回事?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...