我希望能够显示使用Ruby复制文件时的文件复制操作的进度(当前使用的是FileUtils.cp)我已经尝试将verbose选项设置为,true但这似乎只是向我展示了发出的复制命令.
我现在正在从命令行运行这个脚本,所以理想情况下我希望能够在复制文件时呈现像SCP那样的内容,但只要我能看到进度,我就不会对该演示文稿感到太过兴奋. .
有谁知道如果Amazon S3链接在下载过程中过期会发生什么?我正在使用S3提供1.6gig文件的下载,但我想设置最短的到期时间,在15分钟左右的某个地方.
如果下载是在15分钟内启动的,但下载本身需要1或2个小时才会出现问题?我假设一旦下载启动,一切都很好吗?
所以,我在一个文件夹中有一组目录00-99.每个目录都有100个子目录,00-99.每个子目录都有数千个图像.
我正在尝试做的基本上是在计算平均文件大小时得到进度报告,但我无法让它工作.这是我当前的查询:
get-childitem <MyPath> -recurse -filter *.jpeg | Where-Object { Write-Progress "Examining File $($_.Fullname)" true } | measure-object -Property length -Average
这显示了一个在每个文件被处理时更新的栏,但最后我没有回到平均文件大小数据.显然,我做错了,因为我试图破解Where-Object打印进度声明可能是一个坏主意(tm).
由于存在数百万个图像,因此该查询显然需要非常长的时间才能工作.如果我理解正确的话,get-childitem几乎是查询时间的一部分.什么指针得到我想要的?AKA,我的结果理想情况是:
Starting...
Examining File: \00\00\Sample.jpeg
Examining File: \00\00\Sample2.jpeg
Examining File: \00\00\Sample3.jpeg
Examining File: \00\00\Sample4.jpeg
...
Examining File: \99\99\Sample9999.jpg
Average File Size: 12345678.244567
编辑:我可以做简单的选项:
get-childitem <MyPath> -recurse -filter *.jpeg | measure-object -Property length -Average
然后离开我的工作站一天半或者其他东西,但这似乎有点低效= /
任何人都可以建议一个良好的设计模式来报告/监控长流程的状态/进度.基本上,我有一个接收"数据上下文"对象的代码库:
public class DataContext : IDataContext
{
    pulbic Dictionary<string, objects> Properties { get; private set; }
    // Additional properties removed for simplicity...
}
基于提供的上下文,创建具有各种子任务的任务(不是TPL-Task)对象.在执行期间,DataContext对象将传递给各种子任务,这些子任务可以检索或更新它.
例如,假设主要任务是"复制文件"任务.DataContext将具有SourceFolder和TargetFolder等属性,并且可能具有FilterFiles属性(例如*.docx).我们的主要任务是CopyFilesTasks,它将有一个子流的"管道" - 扫描文件夹,扫描文件,过滤文件,复制文件等....
我正在寻找的是允许任务/子任务向调用者/执行者报告其进度的最佳方法.在上面的示例中,进度中的更改可能只是"复制文件ABC.docx ...",或者可能更"复杂",例如"扫描文件夹XYZ ..."
我考虑过以下几种选择:
INotifyPropertyChanged:向DataContext添加"Progress"属性
public string Progress {get; 设置{_progress = value; RaisePropertyChanged( "进度"); }
并将创建DataContext对象的代码注册到PropertyChanged事件.然而,这似乎是一种过于简单化的方法......
ILog(使用您喜欢的任何日志记录框架):在各种任务/子任务中使用ILog实例,并让主任务执行程序将其自己的侦听器添加到日志记录框架.然而,这似乎是弯曲记录机制来做它本不该做的事情.
Udi Dahan的DomainEvents:任务的执行者可以将DataContext视为"域",因此我们可以尝试为"ProgressChanged"事件实现"EventHandler".从理论上讲,这甚至可以用于更精细的事件,这些事件发生在特定的子任务中......但再一次,感觉就像强迫概念......
我的担忧包括:
我有一个应用程序,在执行后台任务时,显示一个进度条,其中包含"估计剩余时间"计算(例如"剩余5秒")和"估计完成时间"(例如"在12:59:59完成" "),或者我称之为ETA.
用于计算此ETA的算法基本上采用随时间推移的"滚动平均值":
1.每个进度事件被添加到具有当前时间的队列中.
2.在一定持续时间(例如10秒)之后,从队列中移除项目.
3. ETA是从队列中的第一个和最后一个项目推断出来的.
如果您关心,源代码可用:ETACalculator.cs
但是,存在抖动问题.随着每个进度事件被添加到计算中,ETA将稍微更新.让我们说ETA只是改变了0.1s.这种小抖动很容易导致ETA"颤动".例如,我没有看到5s,4s,3s等的平滑进展,而是看到了5-5-5-4-5-4-5-4-4-4-4-4.  
我只想把更新减少到每秒1次,但是进度条不太顺畅,而且我真的希望"实际"减速能够实时显示.
我遇到了一个简单的算法,可以减少这种跳跃的抖动.如何消除抖动?
我编写了一个DataSnap服务器方法,它返回一个TStream对象来传输文件.客户端应用程序调用该方法并正确读取流.我的问题是,该方法调用需要一段时间才能完成之前,T流对象可供阅读,但在服务器端,我可以看到,该方法调用只需要一秒钟创造返回对象.我希望立即返回流对象,以便我可以读取流并显示下载进度的进度条.还有其他方法可以做到这一点吗?
服务器方法很简单:
function TServerMethods.DespatchDocument(sCompanyID, sDocOurRef: string): TStream;
var
  sSourceFilePath: string;
  strFileStream: TFileStream;
begin
  sSourceFilePath := GetDocumentPDFFilePath(sCompanyID, sDocOurRef);
  strFileStream := TFileStream.Create(sSourceFilePath, fmOpenRead);
  Result := strFileStream;
end;
我找到了很多例子来说明进度条和轮子的使用情况; 我只能找到一个javascript示例来显示省略号(点 - 点)来引用进度,因此我想问这个问题.我的应用程序不是很复杂 - 它只有几个复选框和一个按钮.最近我的团队要求进行改进,并希望保持简单.
在配置所需设置后,用户单击了一个名为"GO"的按钮.它背后的代码也非常简单 - 它在click事件后禁用按钮并调用一个独立的exe使用ProcessStartInfo它执行三个动作'reconcle','post'和'publish'.我使用该WaitForExist()方法重新启用按钮.
我的团队要求我在按钮上显示"当前进程".他们只是希望按钮文本显示Reconciling.调和......调和......(定期说,1秒),然后以类似的方式发布和发布.
知道实现这一目标的最合适方式会很高兴.提前致谢.
我在操作栏中显示一个水平进度条.我的问题是进度条宽度不是动作条宽度,而是较小(但居中).这是正常的行为吗?如何给它屏幕宽度?
我在onCreate中使用它
    requestWindowFeature(Window.FEATURE_PROGRESS);
这在我的方法中
public void setShowIndeterminateProgress(boolean val) {
    setProgressBarIndeterminate(true);
    setProgressBarVisibility(val);
}
提前致谢.
使用ProgressDialog制作应用程序,它在JellyBean上显示正常,但在使用Lollipop测试时我只看到标题和消息,没有进度微调器..我正在使用
compile 'com.android.support:appcompat-v7:22.2.0'
支持库和AppCompatActivity
代码是:
 ProgressDialog progressDialog = new ProgressDialog(AddBuddyActivity.this);
 progressDialog.setMessage("Loading...");
 progressDialog.setCancelable(false);
 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
 progressDialog.show();
您可以在此处查看我在同一主题上发布的另一个问题.