以下は.aspxソースファイルにあります
Page Language="C#" AutoEventWireup="true" CodeBehind="TestForm.aspx.cs" Inherits="TestApp.TestForm"
!DOCTYPE html PUBLIC
Reference Page ="~/TestForm.aspx" // Note: Removed all HTML tags
protected void Upload_Click(オブジェクト送信者、EventArgs e)
{{
String noPW = "C:\\ Users \\ David \\ Desktop \\ Doc1.docx";
String pwProtected = "C:\\ Users \\ David \\ Desktop \\ Test.docx";
// if(isProtected(pwProtected))
// result.Text =( "ドキュメントはパスワードで保護されています");
// そうしないと
// result.Text =( "ドキュメントはパスワードで保護されていません");
if(isProtected(noPW))
result.Text =( "ドキュメントはパスワードで保護されています");
そうしないと
result.Text =( "ドキュメントはパスワードで保護されていません");
}
以下は、ファイルの背後にある.aspx.csコードにあります
システムを使用する;
System.Collections.Genericを使用します。
System.Linqを使用します。
System.Webを使用します。
System.Web.UIを使用します。
System.Web.UI.WebControlsを使用します。
Microsoft.Office.Interop.Wordを使用する;
System.Runtime.InteropServicesを使用します。
Microsoft.Office.Interop.Wordを使用する;
名前空間TestApp
{{
パブリック部分クラスTestForm:System.Web.UI.Page
{{
保護されたvoidPage_Load(オブジェクト送信者、EventArgs e)
{{
}
public static bool isProtected(object filePath)
{{
アプリケーションmyapp=new Application();
オブジェクトpw="thispassword";
試す
{{
//Word文書でこれを試す
myapp.Documents.Open(ref filePath、PasswordDocument:ref pw); //開いてみます
myapp.Documents [ref filePath] .Close(); //開いている場合は閉じます
}
キャッチ(COMException ex)
{{
if(ex.HResult == -2146822880)//パスワードが無効なためにドキュメントを開くことができません
trueを返します。
そうしないと
Console.WriteLine(ex.Message + "" + ex.HResult); //デバッグのために、この1つのドキュメントのみをテストしました。
}
falseを返します。
}
}
}
少なくとも私のコンピューターでは、両方のファイルに対して期待される出力が得られますが、これは、コードの徹底的なテストと呼ばれるものとは異なります。さらに、FileUploadコントロールを使用してファイルをアップロードしようとしましたが、アップロードされたファイルがデスクトップからのものであるという理由だけで、COMエラー「CannotFind C:\ Windows \ System \ fileName.docx」が表示されましたが、私よりもASP.NETに精通しているので、なぜそれが発生するのかをおそらく知っているでしょう。いずれにせよ、このコードは試してみるだけのものです。それがお役に立てば幸いです。