2015-04-29 25 views
0

是否可以访问资源管理器来检查是否存在某些文件夹,并根据需要从Outlook插件创建文件夹?如果是这样的话,从Outlook使用的API /接口是什么。 MAPIFolder似乎只适用于outlook文件夹。C#Outlook 2013插件访问资源管理器

在此先感谢

编辑:为了澄清,我说的是不是Outlook的一部分操作系统文件夹中。我所说的特定文件夹实际上是在域中的文件服务器上。它映射到将使用插件的用户计算机。他是域用户并且已经过身份验证的事实意味着当尝试从插件访问文件系统时,我不会遇到任何问题?

+0

您不能使用'System.IO.Directory .Exists(string)'或'System.IO.File.Exists(string)'?请参阅https://msdn.microsoft.com/en-us/library/system.io.directory(v=vs.110).aspx和https://msdn.microsoft.com/en-us/library/system。 io.file(v = vs.110).aspx –

+0

@RonBeyer这需要通过Outlook对象模型来完成 - 它不是文件系统。 Shenk与VSTO或VBA合作? –

+0

你在说Outlook或OS文件夹吗? –

回答

1

您需要使用System.IO。*用于检查文件夹是否存在的类。例如,从System.IO命名空间的目录或文件类的Exists方法确定给定的路径是否指的是现有目录/文件在磁盘上:

 if(File.Exists(path)) 
     { 
      // This path is a file 
      ProcessFile(path); 
     }    
     else if(Directory.Exists(path)) 
     { 
      // This path is a directory 
      ProcessDirectory(path); 
     } 
     else 
     { 
      Console.WriteLine("{0} is not a valid file or directory.", path); 
     }   
+0

我正在在我回到办公桌时自己测试它,但是您知道以这种方式访问​​域中的网络驱动器会是一个问题吗?当计算机加入域时,用户已经登录。我会假设没有问题,因为它应该像本地目录一样起作用,因为它已被映射,但我不是100%。 – shenk

1

为什么你需要Explorer对象?这只是为显示 Outlook文件夹。

您可以使用父文件夹对象检查某个特定文件夹是否存在MAPIFolder.Folders.Item("sub folder name")。如果具有给定名称的文件夹不存在,一个将引发异常(你的代码将需要陷阱)

要添加新文件夹,使用MAPIFolder.Folders.Add("sub folder name")

+0

通过资源管理器我的意思是你可以通过Windows资源管理器访问的文件夹。我需要检查是否存在一个不属于Outlook的文件夹,然后我将其保存在那里,请问这是否适用于不属于Outlook的文件夹,不在收件箱中发送等等? – shenk

+0

是的。您需要检查的文件夹相对于其他文件夹(如收件箱)在哪里? –

+0

我需要检查的文件夹位于映射网络驱动器的Outlook外部。 – shenk