Suchen des Benutzers, der die Dateien des freigegebenen Laufwerksordners geändert hat

Ich habe ein freigegebenes Laufwerk, das sich an einer anderen Stelle auf einem Server befindet. Ich möchte eine Benachrichtigung erhalten, in der der Benutzername der Person angegeben wird, die eine auf dem freigegebenen Laufwerk vorhandene Datei geändert hat.

Derzeit verwende ich den FileSystemWatcher, um die Benachrichtigung und den Code zu erhalten, die von der Stapelüberlauf-Frage bereitgestellt werden. "Finden Sie den Benutzernamen (wer) der geänderten Datei in C # heraus", um den Benutzernamen zu finden.

Stattdessen erhalte ich den Namen des Computers, auf dem sich das freigegebene Laufwerk gerade befindet. Ich will dasNutzername Wer hattegeändert dasDatei auf derfreigegebenes Laufwerk.

Mein Code lautet:

 private string GetSpecificFileProperties(string file, params int[] indexes)
        {
            string fileName = Path.GetFileName(file);
            string folderName = Path.GetDirectoryName(file);
            Shell32.Shell shell = new Shell32.Shell();
            Shell32.Folder objFolder;
            objFolder = shell.NameSpace(folderName);
            StringBuilder sb = new StringBuilder();
            foreach (Shell32.FolderItem2 item in objFolder.Items())
            {
                if (fileName == item.Name)
                {
                    for (int i = 0; i < indexes.Length; i++)
                    {
                        sb.Append(objFolder.GetDetailsOf(item, indexes[i]) + ",");
                    }
                    break;
                }
            }
            string result = sb.ToString().Trim();
            if (result.Length == 0)
            {
                return string.Empty;
            }
            return result.Substring(0, result.Length - 1);
        }




string Type = GetSpecificFileProperties(filePath, 2);
string ObjectKind = GetSpecificFileProperties(filePath, 11);
DateTime CreatedDate = Convert.ToDateTime(GetSpecificFileProperties(filePath, 4));
DateTime LastModifiedDate = Convert.ToDateTime(GetSpecificFileProperties(filePath, 3));
DateTime LastAccessDate = Convert.ToDateTime(GetSpecificFileProperties(filePath, 5));
string LastUser = GetSpecificFileProperties(filePath, 10);
string ComputerName = GetSpecificFileProperties(filePath, 53);
string FileSize = GetSpecificFileProperties(filePath, 1);

Antworten auf die Frage(1)

Ihre Antwort auf die Frage