Могу ли я найти файл только по имени файла (то есть расширение неизвестно) - PullRequest
2 голосов
/ 27 июля 2010

У нас есть сетевая папка, в которой хранятся файлы csv, обрабатываемые разными серверами. Мы изменяем расширение файлов CSV, чтобы соответствовать серверу, который обработал файл; например, файл с именем FooBar, обработанный сервером Server1, попадет в общую сетевую папку с именем FooBar.Server_1.

Доступная мне информация - это имя файла: FooBar и путь к общему ресурсу. Мне не гарантировано расширение, так как есть несколько серверов, отправляющих CSV-файлы на сетевой ресурс. Я гарантирую, что в общей папке будет только один FooBar файл.

Есть ли в .net 2.0 метод, который можно использовать для получения расширения csv, имеющего только путь и имя файла? Или мне нужно создать свой собственный?

Ответы [ 4 ]

4 голосов
/ 27 июля 2010

Directory.GetFiles(NETWORK_FOLDER_PATH, "FooBar.*")[0] даст вам полный путь.

Path.GetExtension даст вам расширение.

Если вы хотите соединить все вместе:

string extension = Path.GetExtension(
    Directory.GetFiles(NETWORK_FOLDER_PATH, "FooBar.*")[0]);
3 голосов
/ 27 июля 2010

Это должно сработать:

string[] results = System.IO.Directory.GetFiles("\\\\sharepath\\here", "FooBar.*", System.IO.SearchOption.AllDirectories);

if(results.Length > 0) {
    //found it
    DoSomethingWith(results[0]);
} else {
    // :(
}
2 голосов
/ 27 июля 2010
DirectoryInfo di = new DirectoryInfo(yourPath)
{
  FileInfo[] files = di.GetFiles(FooBar.*);
}
1 голос
/ 27 июля 2010

Если вы знаете каталог, в котором находится файл, вы можете использовать DirectoryInfo.GetFiles ("SearchPattern") : DirectoryInfo.GetFiles("FooBar.*")

...