C# return full path with GetFiles
c#, getfiles
Solution
`FileInfo` contains a `FullName` property, which you can use to retrieve full path to a file
var fullNames = files.Select(file => file.FullName).ToArray();
Check
This code on my machine:
FileInfo[] files = null;
string path = @"C:\temp";
DirectoryInfo folder = new DirectoryInfo(path);
files = folder.GetFiles("*.*", SearchOption.AllDirectories);
//you need string from FileInfo to denote full path
IEnumerable<string> fullNames = files.Select(file => file.FullName);
Console.WriteLine ( string.Join(Environment.NewLine, fullNames ) );
prints
C:\temp\1.dot
C:\temp\1.jpg
C:\temp\1.png
C:\temp\1.txt
C:\temp\2.png
C:\temp\a.xml
...
Full solution
The solution to your problem might look like this:
string path = @"C:\temp";
DirectoryInfo folder = new DirectoryInfo(path);
var directories = folder.GetDirectories("*.*", SearchOption.AllDirectories);
IEnumerable<string> directoriesWithDot =
directories.Where(dir => dir.Name.Contains("."))
.Select(dir => dir.FullName);
IEnumerable<string> filesInDirectoriesWithoutDot =
directories.Where(dir => !dir.Name.Contains("."))
.SelectMany(dir => dir.GetFiles("*.*", SearchOption.TopDirectoryOnly))
.Select(file => file.FullName);
Console.WriteLine ( string.Join(Environment.NewLine, directoriesWithDot.Union(filesInDirectoriesWithoutDot) ) );
Problem
Use this code for search files in directory: ``` FileInfo[] files = null; string path = some_path; DirectoryInfo folder = new DirectoryInfo(path); files = folder.GetFiles("*.*", SearchOption.AllDirectories); ``` This return only filename and extension (text.exe). How to return full path to file(C:\bla\bla\bla\text.exe)? If I use `Directory.GetFiles("*.*")`, this return full path. But if folder contains point in name(C:\bla\bla\test.0.1), result contains path to folder without file: - 0 C:\bla\bla\bla\text.exe - 1 C:\bla\bla\test.0.1 - 2 C:\bla\text.exe etc.