public DocumentFile CreateNewFile(RootDirectoryDetails root) { var parentDirectory = FindOrCreateParentDirectory(root); if (parentDirectory.FindFile(FileName) == null) { return(CreateFile(root)); } for (var i = 1; i <= 10000; i++) { var modifierSegment = $"({i})"; var fileName = FileName; if (fileName.Contains(".")) { fileName = fileName.Substring(0, fileName.LastIndexOf(".", StringComparison.CurrentCulture)) + modifierSegment + fileName.Substring(fileName.LastIndexOf(".", StringComparison.CurrentCulture)); } else { fileName = fileName + modifierSegment; } var existingFile = parentDirectory.FindFile(fileName); if (existingFile == null || existingFile.IsFile == false) { var file = parentDirectory.CreateFile(MimeType, fileName); FileName = file.Name; return(file); } } return(null); }
public DocumentFile FindOrCreateFile(RootDirectoryDetails root) { if (DoesFileExist(root, out var file) == false) { file = CreateFile(root); } return(file); }
public DocumentFile FindDirectory(RootDirectoryDetails root) { var relativePath = GetRelativePath(root.RootDirectory, DownloadDirectory); var segments = relativePath.Split('/').Where(i => string.IsNullOrWhiteSpace(i) == false).ToArray(); var parentDirectory = root.DocumentFile; foreach (var segment in segments) { parentDirectory = parentDirectory.FindFile(segment); if (parentDirectory == null || parentDirectory.IsDirectory == false) { return(null); } } return(parentDirectory); }
private DocumentFile FindOrCreateParentDirectory(RootDirectoryDetails root) { var relativePath = GetRelativePath(root.RootDirectory, DownloadDirectory); var segments = relativePath.Split('/').Where(i => string.IsNullOrWhiteSpace(i) == false).ToArray(); var parentDirectory = root.DocumentFile; foreach (var segment in segments) { var tmpParentDirectory = parentDirectory.FindFile(segment); if (tmpParentDirectory == null || tmpParentDirectory.IsDirectory == false) { tmpParentDirectory = parentDirectory.CreateDirectory(segment); } parentDirectory = tmpParentDirectory; } return(parentDirectory); }
public DocumentFile CreateFile(RootDirectoryDetails root) { var parentDirectory = FindOrCreateParentDirectory(root); if (parentDirectory == null) { return(null); } var file = parentDirectory.FindFile(FileName); if (file == null || file.IsFile == false) { file = parentDirectory.CreateFile(MimeType, FileName); } FileName = file.Name; return(file); }
public bool DoesFileExist(RootDirectoryDetails root, out DocumentFile foundFile) { return((foundFile = FindFile(root)) != null); }
public DocumentFile FindFile(RootDirectoryDetails root) { var parentDirectory = FindDirectory(root); return(parentDirectory?.FindFile(FileName)); }