コード例 #1
0
ファイル: Lowlevel.cs プロジェクト: techno-express/win-sshfs
 public static extern IntPtr CreateFileW(
     [MarshalAs(UnmanagedType.LPWStr)] string filename,
     [MarshalAs(UnmanagedType.U4)] FileAccess access,
     [MarshalAs(UnmanagedType.U4)] FileShare share,
     IntPtr securityAttributes,
     [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition,
     [MarshalAs(UnmanagedType.U4)] FileAttributesEx flagsAndAttributes,
     IntPtr templateFile);
コード例 #2
0
ファイル: Lowlevel.cs プロジェクト: techno-express/win-sshfs
 public static extern IntPtr CreateFile(
     [MarshalAs(UnmanagedType.LPTStr)] string filename,
     [MarshalAs(UnmanagedType.U4)] FileAccess access,
     [MarshalAs(UnmanagedType.U4)] FileShare share,
     IntPtr securityAttributes, // optional SECURITY_ATTRIBUTES struct or IntPtr.Zero
     [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition,
     [MarshalAs(UnmanagedType.U4)] FileAttributesEx flagsAndAttributes,
     IntPtr templateFile);
コード例 #3
0
 private static extern SafeFileHandle CreateFile(
     string fileName,
     [MarshalAs(UnmanagedType.U4)] EFileAccess fileAccess,
     [MarshalAs(UnmanagedType.U4)] FileShare fileShare,
     IntPtr securityAttributes,
     [MarshalAs(UnmanagedType.U4)] FileMode creationDisposition,
     [MarshalAs(UnmanagedType.U4)] FileAttributesEx dwFlagsAndAttributes,
     IntPtr template);
コード例 #4
0
        public bool IsBannedFile(string filePath)
        {
            // Check if Option set to Enable Filtering
            if (mSettings.GetConfig().EnabledFiltering)
            {
                // Establish an FileInfo, we need for the checks below
                FileAttributesEx fi = new FileAttributesEx(filePath);

                // If Options says to filter protected OS files
                if (mSettings.GetConfig().HideProtectedOperatingSystemFilesFolders)
                {
                    return(fi.isHiddenSystemFile());
                }

                // If Config says to filter Hidden Files
                if (mSettings.GetConfig().IgnoreHiddenFiles)
                {
                    return(fi.isHidden());
                }

                // If Config says to filter System Files
                if (mSettings.GetConfig().IgnoreSystemFiles)
                {
                    return(fi.isSystem());
                }

                // If Config says to filter following files
                if (mSettings.GetConfig().IgnoreFollowingFiles)
                {
                    foreach (string item in mBannedFilter)
                    {
                        if (Path.GetFileName(filePath).ToLower() == item.ToLower())
                        {
                            return(true);
                        }
                        if (item.IndexOf("*.") != -1 && item.IndexOf(Path.GetExtension(filePath)) != -1)
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
コード例 #5
0
        public bool isBannedFolder(TreeDir dir)
        {
            // Check if Option set to Enable Filtering
            if (mSettings.GetConfig().EnabledFiltering)
            {
                DirectoryInfo    di        = new DirectoryInfo(dir.DirectoryPath());
                FileAttributesEx dirAttrib = new FileAttributesEx(dir.DirectoryPath());

                string[] c = dir.DirectoryPath().Split(Path.DirectorySeparatorChar);
                // If Options says to filter protected OS folders
                if (mSettings.GetConfig().HideProtectedOperatingSystemFilesFolders)
                {
                    return(c[1].Length != 0 && dirAttrib.isReadOnlyDirectory() && mSettings.GetConfig().HideProtectedOperatingSystemFilesFolders);
                }

                // If Config says to filter Hidden Folders
                if (mSettings.GetConfig().IgnoreHiddenFolders)
                {
                    return(dirAttrib.isHidden());
                }

                // If Config says to filter System Folders
                if (mSettings.GetConfig().IgnoreSystemFolders)
                {
                    return(dirAttrib.isSystem());
                }

                //war59312: If Config says to filter Empty Folders
                if (mSettings.GetConfig().IgnoreEmptyFolders&& dir.DirectorySize() == 0.0)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #6
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value == null)
            {
                return(null);
            }

            FileAttributesEx attributes = (FileAttributesEx)value;

            if (targetType == typeof(string))
            {
                StringBuilder sb = new StringBuilder(15);
                if (((attributes & FileAttributesEx.ReadOnly) == FileAttributesEx.ReadOnly))
                {
                    sb.Append('R');
                }

                if (((attributes & FileAttributesEx.Hidden) == FileAttributesEx.Hidden))
                {
                    sb.Append('H');
                }

                if (((attributes & FileAttributesEx.System) == FileAttributesEx.System))
                {
                    sb.Append('S');
                }

                if (((attributes & FileAttributesEx.Archive) == FileAttributesEx.Archive))
                {
                    sb.Append('A');
                }

                if (((attributes & FileAttributesEx.Device) == FileAttributesEx.Device))
                {
                    sb.Append('D');
                }

                if (((attributes & FileAttributesEx.Normal) == FileAttributesEx.Normal))
                {
                    sb.Append('N');
                }

                if (((attributes & FileAttributesEx.Temporary) == FileAttributesEx.Temporary))
                {
                    sb.Append('T');
                }

                if (((attributes & FileAttributesEx.SparseFile) == FileAttributesEx.SparseFile))
                {
                    sb.Append("Sf");
                }

                if (((attributes & FileAttributesEx.ReparsePoint) == FileAttributesEx.ReparsePoint))
                {
                    sb.Append("Rp");
                }

                if (((attributes & FileAttributesEx.Compressed) == FileAttributesEx.Compressed))
                {
                    sb.Append('C');
                }

                if (((attributes & FileAttributesEx.Offline) == FileAttributesEx.Offline))
                {
                    sb.Append('O');
                }

                if (((attributes & FileAttributesEx.NotContentIndexed) == FileAttributesEx.NotContentIndexed))
                {
                    sb.Append('I');
                }

                if (((attributes & FileAttributesEx.Encrypted) == FileAttributesEx.Encrypted))
                {
                    sb.Append('E');
                }

                return(sb.ToString());
            }
            return(null);
        }