wifrstfasnriov
@wifrstfasnriov (KA TO)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【.NET】UNCパスで表現されるフォルダを認識したい

解決したいこと

Visual StudioでWindowsフォームアプリを作っています。
UNCパスで表現されるフォルダを認識する方法が知りたいです。

ユーザーにフォルダパスを指定させて、そのフォルダの中身に対して処理をするという機能を作りました。
C:aaaa\bbbb\ccなどのドライブレターが振られたフォルダであればSystem.IOで認識できるので、フォルダの存在も確認できますしその中のファイルに対しても処理ができます。
一方で、"\\"((円マークあるいはバックスラッシュ)*2)から始まるUNCパスで表現されるフォルダだとSystem.IO.Directory.ExistsでFalseが返ってきます。
UNCパスでも変わらず認識できているWindowsフォームアプリを見たことがあるので、技術的に不可能ということはないはずなのですが、やり方がわかりません。

image.png

ソースコード(VB/C#)

Imports System.IO
    If Directory.Exists(path) Then
        Console.WriteLine("存在する")
    End If
using System.IO;
  if (Directory.Exists(path)){
  Console.WriteLine("存在する");
  }

自分で試したこと

  1. ネットワークドライブ割り当てでドライブレターを割り当てる方法の検討。
    1. 空いているドライブレターを探して勝手に割り当てることも不可能ではありませんが、ユーザーの環境に依存してしまうので、やはりUNCパスそのままで認識したいです。
  2. FileSystemObjectの使用の検討
    1. 古いFileSystemObjectを.NETで使うイメージがなく、使った場合にどんな問題が生じるのかわからないので他の方法を先に考えたいと思っています。仮にできたとしても、System.IOでできずこちらできる理由がわからなすぎて不気味です。

よろしくお願いいたします。

0

2Answer

Comments

  1. @wifrstfasnriov

    Questioner

    ご回答ありがとうございます。System.IO.Directoryの仕様だと思いこんでおりその前提で質問もしていましたが、DirectoryInfoで例外が返ってこないことから別のところに原因がある可能性に思い至り、その前提で探してみたら自分で\\をTrimしていることが原因であることに気づきました。あっさり解決しました。数か月前悩んでいたのにこんな形で解決するとは…。助かりました。ありがとうございました。

This answer has been deleted for violation of our Terms of Service.

Your answer might help someone💌