CSharpUtils.VirtualFileSystem.FileSystem.Exists C# (CSharp) Method

Exists() public method

public Exists ( string FileName ) : bool
FileName string
return bool
		public bool Exists(string FileName)
		{
			try
			{
				var Info = this.GetFileInfo(FileName);
				return true;
			}
			catch (FileNotFoundException)
			{
				return false;
			}
		}

Usage Example

Example #1
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="SourceFileSystem"></param>
		/// <param name="SourcePath"></param>
		/// <param name="DestFileSystem"></param>
		/// <param name="DestPath"></param>
		/// <param name="ActionValidate"></param>
		/// <param name="ActionProgress"></param>
		static public void CopyTree(FileSystem SourceFileSystem, String SourcePath, FileSystem DestFileSystem, String DestPath, Func<FileSystemEntry, bool> ActionValidate = null, Action<FileSystemEntry, long, long> ActionProgress = null, byte[] Buffer = null)
		{
			if (ActionValidate == null) ActionValidate = ((Entry) => true);
			if (ActionProgress == null) ActionProgress = (Entry, Current, Max) => { };
			//if (Buffer == null) Buffer = new byte[16 * 1024 * 1024];
			if (Buffer == null) Buffer = new byte[2 * 1024 * 1024];

			foreach (var SourceEntry in SourceFileSystem.FindFiles(SourcePath))
			{
				var SourceFullPath = SourcePath + "/" + SourceEntry.Name;
				var DestFullPath = DestPath + "/" + SourceEntry.Name;

				if (!ActionValidate(SourceEntry)) continue;

				if (SourceEntry.Type == FileSystemEntry.EntryType.Directory)
				{
					DestFileSystem.CreateDirectory(DestFullPath, 0777, false);
					CopyTree(SourceFileSystem, SourceFullPath, DestFileSystem, DestFullPath, ActionValidate, ActionProgress, Buffer);
				}
				else
				{
					//
					if (
						!DestFileSystem.Exists(DestFullPath) ||
						(SourceFileSystem.GetFileInfo(SourceFullPath).Size != DestFileSystem.GetFileInfo(DestFullPath).Size)
					)
					{
						using (var SourceStream = SourceFileSystem.OpenFileRead(SourceFullPath))
						using (var DestStream = DestFileSystem.OpenFile(DestFullPath, FileMode.Create))
						{
							SourceStream.CopyToFast(DestStream, Buffer, (Current, Max) =>
							{
								ActionProgress(SourceEntry, Current, Max);
							});
						}
					}
				}
			}

			Buffer = null;
		}