Как портировать функцию C++ на C#
iam портирование функции c++ на c#
код c++ - это
int CCategory::CheckFileOrFolder(CString str) { int iRet = -1; try { const DWORD dwFileAttr = GetFileAttributes(str); if (dwFileAttr == DWORD(-1)) // file not found { iRet = -1; // nothing } else if (dwFileAttr & FILE_ATTRIBUTE_DIRECTORY) { iRet = 0; //folder } else iRet = 1; // file } catch(...) { } return iRet; }
вывод функции будет другим, если я передам следующую строку
C:\Windows\System32\speech\speechux\sapi.cpl,-5566
пожалуйста помочь
Что я уже пробовал:
и мой код C# является
public int CheckFileOrFolder(string str) { int iRet = -1; try { FileAttributes attr = System.IO.File.GetAttributes(str); //var files = Directory.GetFiles(@"c:\windows\system32\"); if ((attr & FileAttributes.Directory) == FileAttributes.Directory) { iRet = 0; //folder } else iRet = 1; // file } catch (Exception ex) { //File not found iRet = -1; // nothing } return iRet; }
CPallini
Какой другой результат вы получаете?
srilekhamenon
извините, что я отправил неправильную строку в коде c++, теперь я получаю -1 в обоих случаях
Richard MacCutchan
Когда вы ловите исключение, вы всегда должны печатать детали, включая сообщение.