Вот два макроса Visual Studio, которые должны делать именно то, что вам нужно.
SaveAll () сохраняет все открытые файлы и записывает файл с именем status.txt на C: в котором все открытые файлы записываются через точку с запятой (полностью не зависит от проекта / решения):
Sub SaveAll()
Dim text As String
Dim i As Integer
For i = 1 To DTE.Documents.Count
text += DTE.Documents.Item(i).FullName + ";"
DTE.Documents.Item(i).Save()
Next i
My.Computer.FileSystem.WriteAllText("C:\status.txt", text, False)
End Sub
В следующий раз, когда вы захотите открыть эти файлы, вы просто вызовете OpenAll (). Он читает файл состояния, разбивает текст через точку с запятой и открывает все файлы:
Sub OpenAll()
'Open status file
Dim text As String
text = My.Computer.FileSystem.ReadAllText("C:\status.txt")
Dim files As String()
files = text.Split(";")
Dim file As String
For Each file In files
If file.Length > 0 Then DTE.ItemOperations.OpenFile(file)
Next
End Sub
Достаточно легко изменить это в соответствии с вашими потребностями (или даже добавить диалог с файлом). Спасибо, что задали этот вопрос, он заставил меня снова сосредоточиться на макросе VS IDE и посмотреть, насколько он мощный.