C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ネットワークドライブにC#アプリから再接続したい


(過去ログ 161 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■93280 / inTopicNo.1)  ネットワークドライブにC#アプリから再接続したい
  
□投稿者/ ぼーちゃん (18回)-(2019/12/02(Mon) 09:46:31)

分類:[C#] 

Visual studio 2017 Professional / C#
Windowsフォームアプリケーション / .NET Framework 4.7.2

こんにちは。
ネットワークドライブ上のファイルを操作するアプリを作っています。
基本的に問題なく動いているのですが、時々例外が発生することがあります。

//X:がネットワークドライブ
System.Diagnostics.Process.Start(@"X:\DOC");

System.ComponentModel.Win32Exception: '指定されたパスが見つかりません。'

調べたところ、Windowsの機能で一定時間接続していないネットワークドライブへの接続が
切断されることが原因のようでした。
https://support.microsoft.com/ja-jp/help/297684/mapped-drive-connection-to-network-share-may-be-lost

実際、例外が起きた時にはエクスプローラー上でネットワークドライブアイコンにバツマーク
が付いており、手動でエクスプローラーから開くだけで再接続され、
アプリからも接続出来るようになります。この再接続をC#のアプリから行う方法はないでしょうか。

前述の通りProcess.Startでエクスプローラーから開こうとすると例外になるのでだめでした。
URLにタイムアウト時間を延ばす方法など記述されていますが、
この設定を変更することは厳しい状況です。
ご存知の方がいましたらどうかお願いいたします。
引用返信 編集キー/
■93281 / inTopicNo.2)  Re[1]: ネットワークドライブにC#アプリから再接続したい
□投稿者/ kiku (149回)-(2019/12/02(Mon) 09:58:10)
No93280 (ぼーちゃん さん) に返信

> アプリからも接続出来るようになります。この再接続をC#のアプリから行う方法はないでしょうか。

WNetAddConnection2を使ってネットワークドライブを切断してから、
再接続することでいけるかと思います。

下記あたりの記事が参考になりそうです。
https://jehupc.exblog.jp/13776105/

引用返信 編集キー/
■93287 / inTopicNo.3)  Re[2]: ネットワークドライブにC#アプリから再接続したい
□投稿者/ ぼーちゃん (19回)-(2019/12/03(Tue) 09:17:45)
No93281 (kiku さん) に返信

kiku さん
ご回答ありがとうございます。
ブログの内容を参考に上手くいきました。

ブログではフォルダに接続出来るかどうかを
ファイルコピーで例外が起きるかで判定していましたが、
Directory.Existsで試した所、例外無く判定出来ましたので
そこは変えました。

悩んでいたので助かりました、どうもありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -