質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

2381閲覧

ネットワーク上コンピュータのフォルダ一覧(ファイルパスを取得したい)

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2018/07/04 03:05

前提・実現したいこと

C#でWindowsFormアプリを開発中です。

アプリ上からSQLServerのバックアップ行う機能を作っていますが
DBサーバに接続し、コマンド実行しバックアップする所は問題ありません。

問題は、DBサーバのバックアップはDBサーバのディスク上にするため、
操作としてバックアップ先のファイル指定をDBサーバのディスク上に指定させる必要があります。
SaveFileDialogではローカルディスクの一覧の為、DBサーバのパスが指定できません。
ManagementStusioでバックアップを行う際は、DBサーバのフォルダ一覧から
バックアップ先ファイルを指定できるので何かしら手立てがあるのではと思っていますが
何か方法はないでしょうか。

■■な機能を実装中に以下のエラーメッセージが発生しました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

SQLServerでxp_cmdshellを使用してフォルダ一覧を取得し
それを基に自作のSaveFileDialogを作成することにしました。

投稿2018/07/04 04:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

下記のコードで「\サーバー名\フォルダ名\xxx.txt」のファイルパスが取得できました。

もちろん、サーバーにログインが必要な場合は、事前にログインしておく必要があります。
こちらは、コマンドプロンプトにて「net use」を使用する方法とかあります。

後は「\サーバー名」を「c:\xxxxx」に変えるとかが必要かもしれません。

代案は、DBサーバーのcドライブをネットワークドライブに割り当てて、
ファイルパスを取得後、「z:」を「c:」に変えるとか?

c##

1 private void button1_Click(object sender, EventArgs e) 2 { 3 SaveFileDialog dialog = new SaveFileDialog(); 4 dialog.InitialDirectory = "\\サーバー名\フォルダ名"; 5 dialog.ShowDialog(); 6 7 MessageBox.Show(dialog.FileName); 8 9 }

投稿2018/07/04 03:44

sugar_yas

総合スコア135

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問