代码之家  ›  专栏  ›  技术社区  ›  iTechy

获取完整路径位置并将其发送到CMD窗口

  •  1
  • iTechy  · 技术社区  · 9 年前

    所以我一直在研究一种从adb保存备份的方法,我想出的最佳方法是:

        saveFileDialog1.Title = "Save Backup";
        saveFileDialog1.OverwritePrompt = true;
        saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
        {   
            var process = Process.Start("CMD.exe", "/c adb backup -apk -all -f"+saveFileDialog1.FileName);
            process.WaitForExit();
        }
    

    然而,无论我将文件保存在哪里,它都不会将文件放在测试名称下。我做错了吗? 我的openFileDialog也是如此:

    openFileDialog1.Title = "Open Backup";
                openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    var process = Process.Start("adb.exe", "restore"+openFileDialog1.FileName);
                    process.WaitForExit();
                }
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   grovesNL    9 年前

    参数的格式不正确。以下行中缺少空格:

    var process = Process.Start("CMD.exe", "/c adb backup -apk -all -f"+saveFileDialog1.FileName);
    

    -f"+saveFileDialog1.FileName 应该是 -f "+saveFileDialog1.FileName 相反

    还应将文件名用引号括起来,以处理文件路径中的空格:

    var process = Process.Start("CMD.exe", "/c adb backup -apk -all -f \""+saveFileDialog1.FileName+"\"");