2010-12-10 88 views
0

我有一個程序使用excel interop例程來生成一組基於excel模板的報告。Excel內部文件重命名

這一切都可以接受,但我試圖弄清楚的副作用是如何防止用戶覆蓋原來的模板。

由於我無法控制的原因,它必須是出類拔萃的,據我所知,這意味着模板必須放在內部網上,以便所有用戶都可以讀/寫。 (如果是檔案,那麼用戶運行的應用程序將無法用新數據填充)

我想通過重命名文件並將其移動到網絡上的其他位置來解決此問題,但我不確定這是否可能。 (因此,線程的名稱)

另外,可能有更好的方法來解決我剛纔沒有想到的問題。

回答

1

我還沒有嘗試過,但我認爲如果你把它放在一個只讀共享中,你仍然應該能夠打開它並寫入到打開的文檔中,但它不能保存它到那個位置,相反,您必須使用SaveAs將它保存在其他地方。

否則,如果我對此有錯,那麼請按照您自己的說法進行操作,即將其放在只讀共享中,然後在開始執行互操作之前將其複製到其他位置。只需使用File.Copy複製它,也許到返回Path.GetTempFileName的名稱,以確保您不覆蓋其他任何東西,然後最終,只需使用SaveAs將其保存到用戶所需的任何地方。

+0

使其成爲只讀是最好的解決方案。我錯誤地認爲這個文件在這個保存中是不可編輯的,而不是僅僅是不可保存的,這正是我想要的和實際發生的。 – 2010-12-10 18:13:40