3

我的项目文件夹中有一组图像。

如何检测我的项目文件夹中是否存在图像?我正在使用 c#。谢谢。

4

4 回答 4

11
if (System.IO.File.Exists("pathtofile"))
  //it exist
else
  //it does not exist

在问题评论后编辑我的答案:

我复制了代码并更改了退出功能,这应该可以

string type = Path.GetExtension(filepath); 
string path = @"image/" + type + ".png"; 
//if(System.IO.File.Exists(path)) I forgot to use the full path
if (System.IO.File.Exists(Path.Combine(Directory.GetCurrentDirectory(), path)))
 { return path; } 
else 
 { return @"image/other.png"; }

部署您的应用程序时,这确实会起作用

于 2010-08-10T07:35:13.903 回答
2

这个问题有点不清楚,但我觉得你是在安装 exe 的路径之后?

  class Program
  {
    static Dictionary<string, string> typeImages = null;

    static string GetImagePath(string type)
    {
      if (typeImages == null)
      {
        typeImages = new Dictionary<string, string>();
        string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        string path = Path.Combine(appPath, @"image/");
        foreach (string file in Directory.GetFiles(path))
        {
          typeImages.Add(Path.GetFileNameWithoutExtension(file).ToUpper(), Path.GetFullPath(file));
        }
      }

      if (typeImages.ContainsKey(type))
        return typeImages[type];
      else
        return typeImages["OTHER"];
    }

    static void Main(string[] args)
    {
      Console.WriteLine("File for XLS="+GetImagePath("XLS"));
      Console.WriteLine("File for ZZZ=" + GetImagePath("ZZZ"));
      Console.ReadKey();
    }
  }

这将为您提供一个图像文件夹,该文件夹将位于安装 exe 的任何位置。在开发环境中,您必须在应用程序路径中的调试和发布下创建一个图像目录,因为这是 VS 放置 exe 的位置。

于 2010-08-12T09:23:27.010 回答
0

使用File.Exists(Path Here)如果您使用临时路径,请使用Path.GetTempPath()

编辑:对不起,与上述相同的答案!

于 2010-08-12T08:41:13.487 回答
-3

你可以使用

string[] filenames = Directory.GetFiles(path);

获取文件夹中文件的列表,然后遍历它们,直到找到您要查找的内容(或不查找)

或者您可以尝试在 try catch 块中打开文件,如果出现异常,则表示该文件不存在。

于 2010-08-10T07:38:25.497 回答