Wpf Windows资源管理器从文件夹中删除和获取文件
据我所知,没有办法判断这是一个文件还是一个文件夹 如果(fi.Extension==“”)不够,因为它与目录以及没有扩展名的文件相匹配 我找到的唯一方法是使用.GetFiles()并处理异常 有更好的办法吗Wpf Windows资源管理器从文件夹中删除和获取文件,wpf,drag-and-drop,.net,Wpf,Drag And Drop,.net,据我所知,没有办法判断这是一个文件还是一个文件夹 如果(fi.Extension==“”)不够,因为它与目录以及没有扩展名的文件相匹配 我找到的唯一方法是使用.GetFiles()并处理异常 有更好的办法吗 private void ListView0_DragDrop(object sender, DragEventArgs e) { // Can only drop files, so check if (!e.Data.GetDataPres
private void ListView0_DragDrop(object sender, DragEventArgs e)
{
// Can only drop files, so check
if (!e.Data.GetDataPresent(DataFormats.FileDrop))
{
return;
}
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
FileInfo fileInfo;
DirectoryInfo dirInfo;
foreach (string str in files)
{
dirInfo = new DirectoryInfo(str);
try
{
foreach(FileInfo fi in dirInfo.GetFiles())
{
Debug.WriteLine("File in dir " + fi.Name);
}
}
catch
{
fileInfo = new FileInfo(str);
Debug.WriteLine("File " + str);
}
}
在添加try-catch之前,我会使用和-尽管由于文件/目录的安全性,您可能仍然需要try(这两种方法都存在FileIOException
)
DirectoryInfo dirInfo;
foreach (string str in files)
{
if (Directory.Exists(str))
{
dirInfo = new DirectoryInfo(str);
foreach(FileInfo fi in dirInfo.GetFiles())
{
Debug.WriteLine("File in dir " + fi.Name);
}
}
else if (File.Exists(str))
{
fileInfo = new FileInfo(str);
Debug.WriteLine("File " + str);
}
}
那就行了。如果一天结束时没有任何东西比这更圆滑的话,我会记下答案。