C++ cli 操作员'^';:使用FileInfo时,所有操作数必须具有相同的枚举类型

C++ cli 操作员'^';:使用FileInfo时,所有操作数必须具有相同的枚举类型,c++-cli,C++ Cli,我正在使用listbox进行某些操作,在尝试扫描文件时遇到问题 代码如下: private: System::Void simpleButton20_Click(System::Object^ sender, System::EventArgs^ e) { this->scan->Items->Clear(); try { DirectoryInfo^ info = gcnew DirectoryInfo(Environment::GetFo

我正在使用listbox进行某些操作,在尝试扫描文件时遇到问题

代码如下:

private: System::Void simpleButton20_Click(System::Object^  sender, System::EventArgs^  e) {
    this->scan->Items->Clear();
    try {
        DirectoryInfo^ info = gcnew DirectoryInfo(Environment::GetFolderPath(Environment::SpecialFolder::UserProfile) + "\AppData\Roaming\skypedir\recievedfiles");
        //FileInfo^ info2 = gcnew FileInfo(SearchOption::AllDirectories);
        FileInfo^ info2 = gcnew FileInfo(info->GetFiles^("*jar*", SearchOption::AllDirectories));
        this->scan->Items->Add(info2->FullName);
    }
    catch(Exception^ Exe){
        MessageBox::Show(Exe->ToString());
    }
}

我收到错误“运算符“^”:所有操作数每次都必须具有相同的枚举类型。

收到的错误是因为在GetFiles之后键入的运算符“^”。你不需要它。 但这并不能解决你的问题。因为,DirectoryInfo::GetFiles返回一个FileInfo数组。因此,不能使用GetFiles创建FileInfo对象。你应该像下面这样做

DirectoryInfo^ info = gcnew DirectoryInfo(Environment::GetFolderPath(Environment::SpecialFolder::UserProfile) + "\\AppData\\Roaming\\skypedir\\recievedfiles");
array<FileInfo^>^ fileInfoArray = info->GetFiles("*jar*", SearchOption::AllDirectories);
for each(FileInfo^ info2 in fileInfoArray)
{
   this->scan->Items->Add(info2->FullName);
}
DirectoryInfo^info=gcnewdirectoryinfo(环境::GetFolderPath(环境::SpecialFolder::UserProfile)+“\\AppData\\Roaming\\skypedir\\receivedfiles”);
数组^fileInfoArray=info->GetFiles(“*jar*”,SearchOption::AllDirectories);
对于每个(fileInfoArray中的FileInfo^info2)
{
此->扫描->项目->添加(信息2->全名);
}

代码在变量和参数声明上是合适的,与使用*或在本地C++程序中完全相同的想法是正确的。它声明了一个指针类型,垃圾收集器可以找到它。这在方法上毫无意义。