| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Infrastructure
- {
- public static class FileLocator
- {
- public static string LocateXmlFile(string fileName)
- {
- string currentDirectory = Directory.GetCurrentDirectory();
- return LocateXmlFileInDirectoryAndSiblings(currentDirectory, fileName);
- }
- private static string LocateXmlFileInDirectoryAndSiblings(string directory, string fileName)
- {
- // Check the current directory
- string filePath = Path.Combine(directory, fileName);
- if (File.Exists(filePath))
- {
- return filePath;
- }
- // Check sibling directories
- string parentDirectory = Directory.GetParent(directory)?.FullName;
- if (parentDirectory != null)
- {
- foreach (var siblingDirectory in Directory.GetDirectories(parentDirectory))
- {
- filePath = Path.Combine(siblingDirectory, fileName);
- if (File.Exists(filePath))
- {
- return filePath;
- }
- }
- }
- return null;
- }
- }
- }
|