Межоперационное переименование файлов Excel

У меня есть программа, которая использует подпрограммы взаимодействия excel для создания набора отчетов на основе шаблона excel.

Все это работает приемлемо, но побочный эффект, который я пытаюсь выяснить, заключается в том, как предотвратить перезапись исходного шаблона пользователями.

Это должен быть Excel по независящим от меня причинам, что, насколько я могу судить, означает, что шаблон должен находиться где-то в интрасети, чтобы все пользователи могли читать/писать. (Если это архив, то приложение, запущенное пользователями, не сможет заполнить его новыми данными)

Я думал попытаться решить эту проблему, переименовав файл и переместив его в другое место в сети, но я не уверен, что это вообще возможно. (отсюда и название темы)

Кроме того, может быть еще лучший способ решения проблемы, о котором я просто не подумал.


person chuck taylor    schedule 10.12.2010    source источник


Ответы (1)


Я не пробовал, но я думаю, что если вы поместите его в общий ресурс только для чтения, вы все равно сможете открыть его и записать что-то в открытый документ, просто он не может сохранить его обратно в это место, вместо этого вам придется использовать SaveAs, чтобы сохранить его в другом месте.

В противном случае, если я ошибаюсь, сделайте так, как вы сами сказали, поместив его в общий ресурс только для чтения, а затем скопировав его куда-нибудь еще, прежде чем начать взаимодействие. Просто используйте File.Copy, чтобы скопировать его, возможно, чтобы вернуть имя Path.GetTempFileName, чтобы убедиться, что вы не перезапишите все остальное, а затем, в конце концов, просто используйте SaveAs, чтобы сохранить его там, где захочет пользователь.

person Hans Olsson    schedule 10.12.2010
comment
сделать его только для чтения оказалось лучшим решением. Я ошибочно предположил, что файл будет нередактируемым в этом сохранении, а не просто не сохраняемым, чего я хотел и на самом деле происходит. - person chuck taylor; 10.12.2010