コード例 #1
0
        internal void Clear(TempClearFlags f)
        {
            if ((f & TempClearFlags.RegisteredFiles) != TempClearFlags.None)
            {
                List <string> lFailed = new List <string>();

                foreach (string strFile in m_lFiles)
                {
                    try
                    {
                        if (File.Exists(strFile))
                        {
                            File.Delete(strFile);
                        }
                    }
                    catch (Exception)
                    {
                        Debug.Assert(false);
                        lFailed.Add(strFile);
                    }
                }

                m_lFiles = lFailed;
            }

            if ((f & TempClearFlags.RegisteredDirectories) != TempClearFlags.None)
            {
                List <KeyValuePair <string, bool> > lFailed =
                    new List <KeyValuePair <string, bool> >();

                foreach (KeyValuePair <string, bool> kvp in m_lDirs)
                {
                    try
                    {
                        if (Directory.Exists(kvp.Key))
                        {
                            Directory.Delete(kvp.Key, kvp.Value);
                        }
                    }
                    catch (Exception)
                    {
                        Debug.Assert(false);
                        lFailed.Add(kvp);
                    }
                }

                m_lDirs = lFailed;
            }

            if ((f & TempClearFlags.ContentTaggedFiles) != TempClearFlags.None)
            {
                ClearContentAsync();
            }
        }
コード例 #2
0
        internal void Clear(TempClearFlags f)
        {
            if ((f & TempClearFlags.RegisteredFiles) != TempClearFlags.None)
            {
                for (int i = m_vFiles.Count - 1; i >= 0; --i)
                {
                    try
                    {
                        if (File.Exists(m_vFiles[i]))
                        {
                            File.Delete(m_vFiles[i]);
                        }

                        m_vFiles.RemoveAt(i);
                    }
                    catch (Exception) { Debug.Assert(false); }
                }
            }

            if ((f & TempClearFlags.RegisteredDirectories) != TempClearFlags.None)
            {
                for (int i = m_vDirs.Count - 1; i >= 0; --i)
                {
                    try
                    {
                        if (Directory.Exists(m_vDirs[i].Key))
                        {
                            Directory.Delete(m_vDirs[i].Key, m_vDirs[i].Value);
                        }

                        m_vDirs.RemoveAt(i);
                    }
                    catch (Exception) { Debug.Assert(false); }
                }
            }

            if ((f & TempClearFlags.ContentTaggedFiles) != TempClearFlags.None)
            {
                ClearContentAsync();
            }
        }
コード例 #3
0
ファイル: TempFilesPool.cs プロジェクト: Stoom/KeePass
        internal void Clear(TempClearFlags f)
        {
            if((f & TempClearFlags.RegisteredFiles) != TempClearFlags.None)
            {
                for(int i = m_vFiles.Count - 1; i >= 0; --i)
                {
                    try
                    {
                        if(File.Exists(m_vFiles[i]))
                            File.Delete(m_vFiles[i]);

                        m_vFiles.RemoveAt(i);
                    }
                    catch(Exception) { Debug.Assert(false); }
                }
            }

            if((f & TempClearFlags.RegisteredDirectories) != TempClearFlags.None)
            {
                for(int i = m_vDirs.Count - 1; i >= 0; --i)
                {
                    try
                    {
                        if(Directory.Exists(m_vDirs[i].Key))
                            Directory.Delete(m_vDirs[i].Key, m_vDirs[i].Value);

                        m_vDirs.RemoveAt(i);
                    }
                    catch(Exception) { Debug.Assert(false); }
                }
            }

            if((f & TempClearFlags.ContentTaggedFiles) != TempClearFlags.None)
                ClearContentAsync();
        }