[英]How to read word file from server in c# using DirectoryInfo
如何在C#中从服务器获取Word文件? 我使用以下代码:
static void Main(string[] args)
{
Word._Application application = new Word.Application();
object fileformat = Word.WdSaveFormat.wdFormatXMLDocument;
//
DirectoryInfo directory = new DirectoryInfo(@"http://www.sample.com/image/");
foreach (FileInfo file in directory.GetFiles("*.doc", SearchOption.AllDirectories))
{
if (file.Extension.ToLower() == ".doc")
{
object filename = file.FullName;
object newfilename = file.FullName.ToLower().Replace(".doc", ".docx");
Word._Document document = application.Documents.Open(filename);
document.Convert();
document.SaveAs(newfilename, fileformat);
document.Close();
document = null;
}
}
application.Quit();
application = null;
}
但是当我使用此代码从本地计算机或台式机获取文件时,工作正常。
请告诉我。
您不能将DirectoryInfo
与URL一起使用。
根据设计,此类在其构造函数中仅采用本地(或映射的网络)路径。
您需要使用System.Net.HttpWebRequest
类从URL获取文件,因为它位于Internet上的服务器上,因此检索文件的唯一方法是通过HTTP
下载文件。
编辑:
根据您的评论,您希望在有权访问的服务器上处理100万个文件。 有很多方法可以解决这个问题。
您可以使用服务器的网络路径,例如
var di = new DirectoryInfo("\\servername\path\filename.doc")
您可以只使用本地路径,然后将您的应用程序创建为C#控制台应用程序,然后使用本地路径。 这就是我所说的实用程序。 这将是更快的方法,因为它将在本地处理所有内容,并避免网络流量。
var di = new DirectoryInfo("c:\your-folder\your-doc-file.doc")
由于您将直接在服务器上运行C#控制台应用程序,因此上述方法可行。
DirectoryInfo只是一个对象,包含有关文件系统中目录条目的信息。 它不会下载文件,我想这是您要执行的操作。
我认为http://msdn.microsoft.com/zh-CN/library/system.net.httpwebrequest.connection(v=vs.110).aspx上的代码示例与您想要的类似。
DirectoryInfo用于访问本地文件或UNC路径。 您不能使用它来访问http地址页面。 您首先需要下载文件,即使用HttpWebRequest。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.