调用Path.GetFullPath()时出现System.OutOfMemoryException

时间:2018-01-18 02:33:29

标签: c# .net wpf path out-of-memory

我的代码<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="1.0" colorSpace="custom" customColorSpace="sRGB"/> 抛出OutOfMemoryException当我传递此值“\\”时,内存不足以继续执行程序。作为论点。关于为什么var fullPath = Path.GetFullPath(input);崩溃的任何解释?

XAML:

Path.GetFullPath("\\.")

视图模型:

<TextBox><TextBox.Text><Binding Path="FolderPath" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True" NotifyOnValidationError="True"/></TextBox.Text></TextBox>

验证员类:

// Implementation of IDataErrorInfo
public string this[string columnName]
{
   get
   {
      if (columnName != null)
      {
         if (columnName.Equals(nameof(FolderPath)))
         {
            if(!Validator.IsValidPath(FolderPath)
                 return "Invalid Folder";
         }
       }
   }
}

1 个答案:

答案 0 :(得分:0)

  

关于为什么Path.GetFullPath(“\。”)崩溃的任何解释?

每个MSDN:https://msdn.microsoft.com/en-us/library/system.io.path.getfullpath(v=vs.110).aspx

<强>说明
.NET Framework不支持通过设备名称的路径直接访问物理磁盘,例如“\。\ PHYSICALDRIVE0”。

你需要使用pinvoke,Direct disk access in windows (C#)或者这个库可能有帮助 CCS LABS C#: Low Level Disk Access