2

私のWebアプリケーションでは、Asp.Netのファイル参照の時点で、ユーザーにFTPロケーションを参照する機能を提供する必要があります。

そのために、私はOpenFileDialogWindowsフォームを使用しました。これはどのローカルロケーションでも機能しますが、どのftpロケーションでも機能しません。

以下は私のコードです。

    protected void BtnOpenFileDialog_Click(object sender, EventArgs e)
    {
        var t = new Thread(SelectFolder);
        t.IsBackground = true;
        t.SetApartmentState(ApartmentState.STA);
        t.Start();
    }

    private void SelectFolder()
    {
        Stream myStream = null;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();

        openFileDialog1.InitialDirectory = "ftp://username:password@ftpidaddress/";
        openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
        openFileDialog1.FilterIndex = 2;
        openFileDialog1.RestoreDirectory = false;

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            try
            {
                if ((myStream = openFileDialog1.OpenFile()) != null)
                {
                    using (myStream)
                    {
                        // code to read the stream here.
                    }
                }
            }
            catch (Exception ex)
            {
                // exception handing here
            }
        }
    }

私が何か間違ったことをしている場合は私に提案してください。または他の方法があれば私に提案してください。

4

0 に答える 0