下面的程序通過按 P 鍵創建自身的快照。它在程序所在的目錄中創建文件。例如,第一次按 P 鍵時,它會創建文件 snapshot.png,如果再次按它,則會創建 snapshot_1,第三次會創建 snapshot_2,依此類推...但是如果你關閉程序并再次啟動它并且那些文件現在存在于目錄中,如果現在你按 P 鍵它會覆蓋它們......我想要的是程序檢查它要創建的文件是否存在,如果存在,則嘗試創建一個具有行中下一個數字的文件..如果也存在,則嘗試下一個,依此類推on,直到找到一個不存在的文件名,然后才創建文件。你能幫我修改代碼來做我正在描述的嗎? string filename = "\\screenshot.png"; private void Mainwindow_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.P) { FrameworkElement element = UxVisual as FrameworkElement; var pathstr = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName); filename = "\\screenshot_" + DateTime.Now.ToFileTime() + ".png"; Uri path = new Uri(pathstr + filename); CaptureScreen(element, path); }
1 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
我不知道為什么這個問題在上面的評論部分變得如此冒犯......但是正如其他用戶已經建議的那樣,你應該考慮在你的文件路徑中添加一個時間戳。您可以使用這樣DateTime
的字符串操作來執行此操作:
filename = "\\screenshot_" + DateTime.Now.ToFileTime() + ".png";
可能的輸出將是一個名為此文件的文件screenshot132006693766467910.png
,這將導致所有文件名彼此不同并且不會相互覆蓋
根據要求,您可以使用以下方法使它看起來更好:
var filename = "\\screenshot_" + DateTime.Now.ToString("HH_mm_ss_fff") + ".png";
輸出就像screenshot_16_14_11_523.png
包含時分秒和毫秒
- 1 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消