如果文件不存在,则转义字节数组错误

时间:2014-09-30 11:22:46

标签: c#

我需要像字节数组一样发送文件。

首先我创建文件路径:

saveLocation = Path.Combine(Server.MapPath("~/temp"), filename);

其中文件名是文件名。 当我定义路径时,我必须调用其他方法:

public string upload_b(string filepath)
{
    SomeService service = new SomeService();
    byte[] b = System.IO.File.ReadAllBytes(filepath);
    return service.upload_b(b);
}

现在,如果我没有文件名,我会收到错误,因为无法找到文件。

我认为使用if来检查它并定义字节数组,但是我无法在if中定义变量,并且我不知道之前定义它的字节数组的大小。

请帮忙, 谢谢

1 个答案:

答案 0 :(得分:1)

您可以在if语句之前声明变量,并在if语句中为其赋值。您不需要以这种方式了解阵列的容量。或者您可以在尝试访问该文件的位置捕获FileNotFound-Exception,这将是一个更好的解决方案,但只有当文件通常存在并且只有文件不存在时才有效。

编辑,我想的是以下内容:

byte[] b;
if (File.Exists(filepath))
{
   b = System.IO.File.ReadAllBytes(filepath);
   //...
}
else
{
   //...
}

或者尝试捕捉方法:

byte[] b;
try
{
   b = System.IO.File.ReadAllBytes(filepath);
   //...
}
catch(FileNotFoundException e)
{
   //...
}