コード例 #1
0
        public static bool GetFileInformationByHandleEx(
            SafeFileHandle hFile,
            out FILE_ID_BOTH_DIR_INFO info
            )
        {
            var fileStruct = new FILE_ID_BOTH_DIR_INFO();

            return(GetFileInformationByHandleEx(hFile, FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryInfo, out info, (uint)Marshal.SizeOf(fileStruct)));
        }
コード例 #2
0
        public static StringBuilder getDirectories()
        {
            Process[] procs;

            procs = Process.GetProcesses();

            StringBuilder paths      = new StringBuilder();
            var           fileStruct = new FILE_ID_BOTH_DIR_INFO();
            uint          bufferSize = 0x10000;

            foreach (Process p in procs)
            {
                foreach (SYSTEM_HANDLE_INFORMATION sH in getHandles(p, getAllHandles()))
                {
                    if (p.ProcessName.Contains("excel"))
                    {
                        IntPtr handle = getAllHandles();
                        paths.Append(GetFileInformationByHandleEx(handle, FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryInfo, out fileStruct, bufferSize));
                        string test = GetFileInformationByHandleEx(handle, FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryInfo, out fileStruct, bufferSize);
                    }
                }
            }
            return(paths);
        }
コード例 #3
0
 private static extern string GetFileInformationByHandleEx(IntPtr hFile, FILE_INFO_BY_HANDLE_CLASS infoClass, out FILE_ID_BOTH_DIR_INFO dirInfo, uint dwBufferSize);
コード例 #4
0
 public static extern bool GetFileInformationByHandleEx(
     SafeFileHandle hFile,
     FILE_INFO_BY_HANDLE_CLASS infoClass,
     out FILE_ID_BOTH_DIR_INFO dirInfo,
     uint dwBufferSize);