Как отличить файл или папку в событии перетаскивания в C#?

У меня есть форма, в которую вы перетаскиваете файлы, и мне было интересно, как я могу узнать, являются ли данные файлом или папкой.

моей первой попыткой было найти "."в данных, но тогда некоторые папки имеют . в них. Я также попытался сделать файл.Существует и каталог.Существует условие, но затем он выполняет поиск только по текущему пути приложения, а не где-либо еще.

есть в любом случае я могу как-то применить .Существует в конкретном каталог или есть способ проверить, какой тип данных перетаскивается в форму?

2 ответов


учитывая путь в виде строки, вы можете использовать Система.ИО.Файл.GetAttributes (строковый путь) и файла.

FileAttributes attr = File.GetAttributes(path);
bool isFolder = (attr & FileAttributes.Directory) == FileAttributes.Directory;

if(Directory.Exists(path))
  // then it is a directory
else
  // then it is a file