亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使 WPF 應用程序不覆蓋它創建的文件

如何使 WPF 應用程序不覆蓋它創建的文件

C#
婷婷同學_ 2022-12-31 10:50:16
下面的程序通過按 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包含時分秒和毫秒


查看完整回答
反對 回復 2022-12-31
  • 1 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號