public override string ToString() { if (IOTool.FileIsLink(m_path)) { return(Path.GetFileNameWithoutExtension(m_path)); } return(Path.GetFileName(m_path)); }
private void InitializeDataFile() { if (IOTool.FileIsLink(DiskPath) && File.Exists(DiskPath)) { m_dataFilePath = IOTool.GetLinkContent(DiskPath); } else { m_dataFilePath = DiskPath; } }
private void InitializeLink() { if (IOTool.FileIsLink(DiskPath)) { m_folderPath = IOTool.GetLinkContent(DiskPath); } else { m_folderPath = DiskPath; } }
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); } }
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); } } }
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); }
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(); } }