Пример #1
0
 public override string ToString()
 {
     if (IOTool.FileIsLink(m_path))
     {
         return(Path.GetFileNameWithoutExtension(m_path));
     }
     return(Path.GetFileName(m_path));
 }
Пример #2
0
 private void InitializeDataFile()
 {
     if (IOTool.FileIsLink(DiskPath) && File.Exists(DiskPath))
     {
         m_dataFilePath = IOTool.GetLinkContent(DiskPath);
     }
     else
     {
         m_dataFilePath = DiskPath;
     }
 }
Пример #3
0
 private void InitializeLink()
 {
     if (IOTool.FileIsLink(DiskPath))
     {
         m_folderPath = IOTool.GetLinkContent(DiskPath);
     }
     else
     {
         m_folderPath = DiskPath;
     }
 }
Пример #4
0
        public override void RenameTo(string newname)
        {
            string dir = Path.GetDirectoryName(DiskPath);
            string dst = Path.Combine(dir, newname);

            if (IOTool.FileIsLink(DiskPath))
            {
                File.Move(DiskPath, dst + ".lnk");
            }
            else
            {
                Directory.Move(DiskPath, dst);
            }
        }
Пример #5
0
 public override void Remove()
 {
     if (IOTool.FileIsLink(DiskPath))
     {
         File.Delete(DiskPath);
     }
     else
     {
         try
         {
             Directory.Delete(DiskPath, true);
         }
         catch (Exception err)
         {
             StdDialog.ShowError("s_path_cannot_be_deleted_delete_scheduled");
             DeletedFileRegistrer.AddPath(DiskPath, true);
             throw new DeleteError(DiskPath, err);
         }
     }
 }
Пример #6
0
        public List <IVirtualFile> LoadFiles()
        {
            List <IVirtualFile> res = new List <IVirtualFile>();

            if (!Directory.Exists(m_folderPath))
            {
                return(res);
            }
            foreach (string file in Directory.GetFiles(m_folderPath))
            {
                if (IOTool.FileIsLink(file))
                {
                    if (!IOTool.FileLinkExists(file))
                    {
                        continue;
                    }
                }
                res.Add(new DiskFile(m_fileSystem, IOTool.RelativePathTo(m_fileSystem.RootPath, file)));
            }
            return(res);
        }
Пример #7
0
        public static void CopyFileTo(this IVirtualFile srcfile, IVirtualFile dstfile, CopyFileMode mode)
        {
            if (srcfile.DiskPath != null && dstfile.DiskPath != null && IOTool.FileIsLink(srcfile.DiskPath))
            {
                IOTool.CopyFile(srcfile.DiskPath, dstfile.DiskPath, mode);
                return;
            }
            if (srcfile.DataDiskPath != null && dstfile.DataDiskPath != null)
            {
                IOTool.CopyFile(srcfile.DataDiskPath, dstfile.DataDiskPath, mode);
                return;
            }

            string text = null;

            byte[] data = null;
            try
            {
                text = srcfile.GetText();
            }
            catch (Exception)
            {
                data = srcfile.GetBinary();
            }
            if (text != null)
            {
                dstfile.SaveText(text);
            }
            else
            {
                dstfile.SaveBinary(data);
            }
            if (mode == CopyFileMode.Move)
            {
                srcfile.Remove();
            }
        }