CMDNetFileHelper
/// <まとめ> /// リモート共有フォルダに接続 /// </要約> パブリック クラスCMDNetFileHelper { /// <まとめ> /// リモート共有フォルダに接続 /// </要約> /// <名前= "パス">のparam リモート共有フォルダへのパス</ param>の /// <PARAM NAME = "userNameに"> ユーザー名</ param>の /// <PARAM NAME = "PASSWORD"> パスワード</ param>の /// <戻り値> </戻り値> パブリック 静的 BOOL connectState(文字列のパス、文字列ユーザ名、文字列パスワード) { ブールフラグ= 偽; プロセスPROC = 新しいプロセス()。 試す { proc.StartInfo.FileNameは = " cmd.exeの" ; proc.StartInfo.UseShellExecute = 偽; proc.StartInfo.RedirectStandardInput = 真; proc.StartInfo.RedirectStandardOutput = 真; proc.StartInfo.RedirectStandardError = 真; proc.StartInfo.CreateNoWindow = 真; proc.Start(); 文字列 dosLine = " ネット利用" +パス+ " " +パスワード+ " /ユーザー:" + userNameに。 proc.StandardInput.WriteLine(dosLine)。 proc.StandardInput.WriteLine(" 終了" ); しばらく(!proc.HasExited) { proc.WaitForExit(1000年); } ストリング ERRORMSG = proc.StandardError.ReadToEnd()。 proc.StandardError.Close(); もし(ストリング.IsNullOrEmpty(ERRORMSG)) { フラッグ = 真。 } 他 { スロー 新しい例外(ERRORMSGを) } } キャッチ(例外例) { スローEX。 } 最後に { proc.Close()。 proc.Dispose(); } 戻りフラグ。 } /// <要約> ///リモートローカルフォルダにコンテンツを保存し、またはローカルフォルダにリモートからファイルをダウンロード /// </要約> /// <PARAM NAME =「SRC」> ファイルを保存します「D:\ 1.avi」@:あなたが共有フォルダにファイルを保存する場合、パスは、このパスは、次のような、ローカルファイルへのパスです。</ param>の /// <PARAM NAME =「DST」> フリーファイルのパス名を保存および拡張</ param>の /// <PARAM NAME = "FILENAME"> ファイルを保存するための名前と拡張子</ param>の パブリック 静的 ボイドトランスポート(文字列 SRC、文字列の DSTを、文字列filename)で { FileStreamをinFileStream = 新規のFileStream(SRC、FileMode.Open)。 もし(!Directory.Exists(DST)) { Directory.CreateDirectory(DST)。 } DST = System.IO.Path.Combine(DSTファイル名)。 FileStreamをoutFileStream = 新しいFileStreamを(DST、FileMode.OpenOrCreate)。 バイト [] BUF = 新しい バイト[inFileStream.Length]。 int型:バイト; 一方、((:バイト= inFileStream.Read(BUF、0、buf.Length))> 0 ) { outFileStream.Write(BUF、0 、:バイト)。 } inFileStream.Flush()。 inFileStream.Close(); outFileStream.Flush(); outFileStream.Close(); } }
メソッドを呼び出します
/// <要約> /// リモートに保存されたファイル /// </要約> /// <PARAM NAME = "ファイル"> リモート・ファイル</ param>の 公共の 静的な 無効 SaveRadioFromRemote(文字列のファイル) { 試み { BOOLのステータス= falseに; // 接続共有フォルダ ステータス= CMDNetFileHelper.connectState(RadiosConfig.net_root_file、RadiosConfig.net_user、RadiosConfig.net_pwd); IF (ステータス) { // ディレクトリの共有フォルダ DirectoryInfo theFolder =新しい新しいDirectoryInfo(RadiosConfig.net_root_file); // 共有フォルダのパスからの相対 文字列 filePathに= RadiosConfig.local_file; // 保存したファイルを取得するパス 文字列のファイル名= Path.Combine(theFolder.FullName、filePathに); //は、メソッドを実行 CMDNetFileHelperを。交通(RadiosConfig.net_root_file + @ " \ " + ファイル、RadiosConfig.local_file、ファイル); } 他 { スロー 新しい新しい例外(" 接続できませんでした!" ); } } キャッチ(例外EX) { スローEX; // MessageBox.Show( "リモートサーバーアドレスことに注意して、リモートファイルのエラーを保存"); // PLog.Log.WriteError(ex.ToString()); } }