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

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

新規登録して質問してみよう
ただいま回答率
85.46%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

1回答

2645閲覧

ファイル監視アプリの作成 更新者情報の取得

ryukaji

総合スコア0

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/10/18 11:53

VB.NETにて指定フォルダ内のファイルが更新された場合にモニターするような
アプリを作成中です。FileSystemWatcherを使用すると、
ファイル内容の更新、ファイルのリネーム、ファイルの作成、ファイルの削除については
検知するようなのですが、それを誰が行ったのか更新者の情報を取得する事が出来ません。
良い方法はないでしょうか?

詳しい方ご回答よろしくお願いします。

下記のサンプルコードを使用しています。
Dim watcher As New System.IO.FileSystemWatcher
'監視するディレクトリを指定
watcher.Path = "C:\My Documents"
'.txtファイルを監視、すべて監視するときは""にする
watcher.Filter = "
.txt"
'ファイル名とディレクトリ名と最終書き込む日時の変更を監視
watcher.NotifyFilter = System.IO.NotifyFilters.FileName Or _
System.IO.NotifyFilters.DirectoryName Or _
System.IO.NotifyFilters.LastWrite
'サブディレクトリは監視しない
watcher.IncludeSubdirectories = False
'必要に応じてバッファサイズを変更
'watcher.InternalBufferSize = 4096
'同期的に監視を開始する
Dim changedResult As System.IO.WaitForChangedResult = _
watcher.WaitForChanged(System.IO.WatcherChangeTypes.All)

If changedResult.TimedOut Then
Console.WriteLine("タイムアウトしました。")
Return
End If

'変更があったときに結果を表示する
Select Case changedResult.ChangeType
Case System.IO.WatcherChangeTypes.Changed
Console.WriteLine(("ファイル 「" + _
changedResult.Name + "」が変更されました。"))
Case System.IO.WatcherChangeTypes.Created
Console.WriteLine(("ファイル 「" + _
changedResult.Name + "」が作成されました。"))
Case System.IO.WatcherChangeTypes.Deleted
Console.WriteLine(("ファイル 「" + _
changedResult.Name + "」が削除されました。"))
Case System.IO.WatcherChangeTypes.Renamed
Console.WriteLine(("ファイル 「" + _
changedResult.OldName + "」の名前が「" + _
changedResult.Name + "」に変更されました。"))
End Select

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/10/18 12:04

まずはともかくコードを ``` と ``` で囲ってください(``` はバッククォート 3 つ)。インデントされて見やすくなるので。インデントされてないコードはあなたも読む気がしないのでは? 閲覧者はなおさらです。
guest

回答1

0

恐らくはアプリだけの対応では出来なくて、OS側で監査ログを出力するようにする必要があるかと思います。
実際に試した事があるわけでは無いはないですが。。

<参考>
■ 共有フォルダーで「誰が」「いつ」「どのファイルにアクセスしたか」をイベントログに出力させる方法
https://mseeeen.msen.jp/how-to-output-eventlog-of-file-access-in-shared-folder/
■ 共有フォルダーへのアクセスログを確認できますか?
https://www.iodata.jp/support/qanda/answer/s14426.htm

投稿2021/10/18 14:26

cx20

総合スコア4633

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問