Esempio n. 1
0
            public override void Execute(FileSysEmulator fse)
            {
                FileSysEmulator.FileSystemItem item = _treeToRemove.Resolved.ResolvedFsi;
                if (item is FileSysEmulator.FsLink)
                {
                    item = fse.GetTargetItemOfLink((FileSysEmulator.FsLink)item);
                }

                if (item is FileSysEmulator.FsDrive)
                {
                    throw new ApplicationException(String.Format("Can't remove '{0}'.", item.GetFullPath()));
                }

                FileSysEmulator.FsDir dir = (FileSysEmulator.FsDir)item;

                if (fse.CurrentDrive.CurrentDir != null)
                {
                    FileSysEmulator.FileSystemItem drT = fse.CurrentDrive.CurrentDir;
                    Boolean found = false;
                    for ( ; drT != null && !(drT is FileSysEmulator.FsRoot); drT = drT.Parent)
                    {
                        if (drT == dir)
                        {
                            found = true; break;
                        }
                    }
                    if (found)
                    {
                        throw new ApplicationException(String.Format("Can't remove '{0}' with subtree because it contains the current directory.", item.GetFullPath()));
                    }
                }

                fse.RemoveItem(item);
            }
Esempio n. 2
0
 public override void Execute(FileSysEmulator fse)
 {
     FileSysEmulator.FileSystemItem item = _sourceFilePath.Resolved.ResolvedFsi;
     if ((item is FileSysEmulator.FsFile) || (item is FileSysEmulator.FsLink))
     {
         fse.RemoveItem(item);
     }
     else
     {
         throw new ApplicationException(String.Format("Command 'Del' can't remove '{0}'.", item.GetFullPath()));
     }
 }
Esempio n. 3
0
            public override void Execute(FileSysEmulator fse)
            {
                FileSysEmulator.FileSystemItem item = _dirPath.Resolved.ResolvedFsi;
                if (item is FileSysEmulator.FsLink)
                {
                    item = fse.GetTargetItemOfLink((FileSysEmulator.FsLink)item);
                }

                FileSysEmulator.FsDir dir = (FileSysEmulator.FsDir)item;
                if (!dir.IsEmpty)
                {
                    throw new ApplicationException(String.Format("Can't remove '{0}' because it isn't empty.", item.GetFullPath()));
                }
                if (dir == fse.CurrentDrive.CurrentDir)
                {
                    throw new ApplicationException(String.Format("Can't remove '{0}' because it is current.", item.GetFullPath()));
                }

                fse.RemoveItem(item);
            }