C#SFTPでダウンロードするプログラムの作り方。

2016.12.06

Logging


C#SFTPでダウンロードするプログラムの作り方。
いろいろ調べた結果、こんだけのコードでSFTPでダウンロードする事が
判明。タダシ!!ライブラリが必要なので下記のリンクからTamir.SharpSSH.dll
のライブラリを参照してあげてください。そうすることでSFTPのダウンロードが
可能になります。FTPでの接続方法とかは結構出回っていますが、SFTPの接続プログラムって
あまり落ちてません。ちなみに、その他のライブラリを使う方法にWinSCPのライブラリを
使う方法やSSH.Netのライブラリを使う方法があります。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Tamir.SharpSsh;
namespace ftp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Sftp sftp = new Sftp("192.168.11.1", "id", "pass");
            sftp.Connect();
            sftp.Get("/www/html/hoge.mp4", "C:\\Users\\hoge\\Documents\\hoge.mp4");
            sftp.Close();
            MessageBox.Show("キタ━━━━(゚∀゚)━━━━!!");
        }
    }
}

https://ja.osdn.net/projects/sfnet_sharpssh/downloads/SharpSSH/1.1.1.13/SharpSSH-1.1.1.13.bin.zip/

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

Collections.Generic, Documents, Form, FTP, hoge, InitializeComponent, object sender, quot, SFTP, Sftp sftp, sftp.Close, System.Text, users, using, using System.ComponentModel, using System.Drawing, using System.Linq, using System.Threading.Tasks, WinSCP, タダシ,

いらない自作アプリ(個人用)苦笑交じり(´・ω・`)

2016.08.07

Logging


いらない自作アプリをVC#で作りました(´・ω・`)。
殆どの人がいらないと思うアプリですが
自分にとっては、結構重宝するアプリだったりします。
ちなみにプロセスの管理とかしていないので
エラーで落ちちゃう恐れとかあります。
そこはご愛嬌でよろしくお願いします。
中身のコードは少し他人のコードを
コピペで使わさせてもらっている所ありです。
また、解像度によりうまく表示されない事もあります。
まさに、自分だけのためのアプリなのです。
(そんな場合は最大化www)
これで何が出来るのかといえば・・・
httpd.confのバーチャルホスト設定のファイル作成を
自動で吐き出してくれます。ついでにhostsファイルも
吐き出します。
コードはこんな感じ。
DLしたい奇特な方用:https://zip358.com/tool/httpconf.zip

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace httpdconf
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void make_btn_Click(object sender, EventArgs e)
        {
            Boolean flg_1;
            Boolean flg_2;
            Boolean flg_3;
            string conf_str;
            string stCurrentDir = System.Environment.CurrentDirectory;
            flg_1 = chk_text(host_name.Text);
            flg_2 = chk_text(ip_address.Text);
            flg_3 = chk_text(dc_root.Text);
            if (flg_1 && flg_2 && flg_3) {
                conf_str = @"
<VirtualHost *:80>
DocumentRoot " + dc_root.Text + host_name.Text + @"
ServerName " + host_name.Text + @"
" + option_text.Text + @"
ErrorLog logs/virtual.host-" + host_name.Text + @"-error_log
CustomLog logs/virtual.host-access-" + host_name.Text + @"_log combined
</VirtualHost>";
                midashi.Text = conf_str;
                IPAD.Text = ip_address.Text + " " + host_name.Text;
                wte(stCurrentDir, "/vhost-" + host_name.Text, midashi, "conf");
                wte(stCurrentDir, "/hosts_win_" + host_name.Text, IPAD, "txt");
                System.Diagnostics.Process.Start(stCurrentDir);
            }
        }
        public Boolean chk_text(string str) {
            if (str == "") {
                return (false);
            }
            return (true);
        }
        public void wte(string dir, string fname, TextBox txt_str, string ext)
        {
            System.IO.StreamWriter sw = new System.IO.StreamWriter(
                dir + fname + "." + ext,
                false,
                System.Text.Encoding.GetEncoding("utf-8"));
            foreach (string line in txt_str.Lines)
            {
                sw.Write(line + sw.NewLine);
            }
            sw.Close();
        }
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            linkLabel1.LinkVisited = true;
            System.Diagnostics.Process.Start("https://twitter.com/zip358com");
        }
    }
}

動作画面

著者名  @taoka_toshiaki

※この記事は著者が30代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

AM, Boolean flg, host_name.Text, LinkLabelLinkClickedEventArgs e, namespace httpdconf, new System.IO.StreamWriter, object sender, private void linkLabel1_LinkClicked, public partial class Form1, stCurrentDir, string stCurrentDir, System.Diagnostics.Process.Start, System.Environment.CurrentDirectory, System.IO.StreamWriter sw, System.Text.Encoding.GetEncoding, using System.Collections.Generic, using System.ComponentModel, using System.Drawing, using System.Threading.Tasks, using System.Windows.Forms, virtual.host,