0

ユーザーがファイルを選択するだけでなく、ディレクトリを選択できるようにする方法を見つけようとしています。ファイルは気にしません。ディレクトリだけです。ユーザーにこれをさせる方法はありますか? 私が見つけた唯一の方法は、アプリケーションが実行されているマシンで使用可能なドライブのリストを返すことです。

ネットワークに接続されたコンピューターは表示されず、実際にマップされているドライブのみが表示されるため、これは私が必要としているものではありません。必要なのは、ユーザーがソース ディレクトリを選択し、そのサーバー パス ( \\my-server-name\path\to\source) を保存して、実行中のサービスがスケジュールされた時間にそれを処理するようにすることだけです。

私が持っているコードを変更してすべてのネットワークコンピューターを表示できるかどうか、またはサーバー上のユーザーブラウザーディレクトリを許可する方法/ライブラリが既に存在するかどうかはわかりませんが、行き詰まっています。これを達成する方法はありますか?

return (from info in driveInfo
   where info.DriveType == DriveType.Network
   select new Drive
   {
      Name = info.Name, Type = info.DriveType, 
      RootDirectory = info.RootDirectory.Name, IsReady = info.IsReady,
   }).ToList();

適切に統合できる限り、C# 以外のソリューションも機能します。これを行うかどうか、または行うことができるかどうNodeJSかわかりませんか?Html5Javascript

4

1 に答える 1

0

これは美しい解決策ではありません-そして、それは迅速ではありませんが、あなたの質問を正しく読んでいれば、これはあなたが探しているものに沿っています(VB.NETで行われます)。

    Dim fbd1 As New FolderBrowserDialog
    Dim type As Type = FolderBrowserDialog1.GetType
    Dim fieldInfo As Reflection.FieldInfo = type.GetField("rootFolder", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
    fieldInfo.SetValue(fbd1, DirectCast(18, Environment.SpecialFolder))
    fbd1.ShowDialog()

FolderBrowserDialogこれにより、「ネットワーク」をルート フォルダーとしてダイアログが表示されます。[ネットワーク] をクリックすると、展開されて、表示できるすべてのネットワーク デバイスが一覧表示されます。私のコンピューターでは、これはかなり遅かったです。

これは、私がここで見つけたソリューションを少し修正したものです - http://www.codeproject.com/Articles/20547/How-to-Browse-Network-Folders-using-Folder-Dialog

于 2013-06-27T19:13:08.407 に答える