我有以下情况: 我在VS 2017中的解决方案包括一些其他我经常编辑的python文件。 每次我保存这些打开的.py文件,某些代码或.bat文件(或者您认为最方便的任何内容)应该将它们从X复制到Y时,我该如何实现? ? 例如,文件a.py和b.py在我的解决方案中打开,我刚刚编辑了其中的一些并点击了“保存”或“全部保存”,所以如果我点击“保存”我只想要当前文档要复制 - 如果它是.py - 从路径X到路径Y,如果我点击“全部保存”,我希望复制所有.py文件。
我遇到了这个问题: Run script when finished saving file - Visual Studio Extensibility
它向我介绍了DTE,它允许我订阅文件保存事件,所以我想我可以使用它的一些代码,但我不清楚这个代码如何运行自动在文件保存。
答案 0 :(得分:1)
您创建一个Windows服务并使用FileSystemWatcher
类,但我宁愿给您一个更简单的解决方案,因为我无法真正编写如何制作Windows服务,因为它可能很大:(
无论如何,这是一个丑陋的解决方案;)
1。创建一个WinForm的应用程序
2。在其中创建一个计时器
3。在计时器的计时事件中使用FileSystemWatcher
4。在Form_Load
上触发计时器并隐藏表格:)
5。将您的应用添加到启动
示例:
public class form1
{
Forms.Timer tmr = new Forms.Timer
private void form_Load()
{
tmr.Tick += tmr_Tick();
tmr.Start
me.Hide();
}
private void tmr_Tick()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastWrite;
watcher.Filter = "*.*";
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}