UNITY c#截图问题

本文关键字:问题 UNITY | 更新日期: 2023-09-27 18:04:16

我正试图写一些代码来截图并保存在android默认的DCIM路径中,第一部分用于截图工作,但第二部分用于移动文件到路径不工作。

public class IS_Screenshot : MonoBehaviour
{
    string ScreenShotFile;
    void Start () 
    {
        ScreenShotFile = Application.persistentDataPath + "_Screenshot_" + System.DateTime.Now.ToString("_yyyy-MM-dd_HH-mm-ss") + ".png";
        Debug.Log (ScreenShotFile);
    }
    public void Screen_Shot() 
    {
        try
        {
            Application.CaptureScreenshot(ScreenShotFile);
            string Path = "/mnt/sdcard/DCIM/" + "_Screenshot_" + System.DateTime.Now.ToString("_yyyy-MM-dd_HH-mm-ss_") + ".png";
            Debug.Log (Path);
            if(System.IO.File.Exists(ScreenShotFile))
            {
                System.IO.File.Move(ScreenShotFile, Path);
                Debug.Log ("Screenshot file saved.");
            }
            else
            {               
                Debug.Log ("Screenshot file not found.");
            }
        }
        catch(Exception ex) 
        {
            Debug.Log ("Screenshot capture failed. | " + ex);
        }
    }
}

UNITY c#截图问题

使用Path.Combine将文件名附加到persistentDataPath。很可能在Android上,persistentDataPath的值没有以路径分隔符结束,这将导致无效的路径。

ScreenShotFile = Path.Combine(Application.persistentDataPath, "_Screenshot_" + System.DateTime.Now.ToString("_yyyy-MM-dd_HH-mm-ss") + ".png");