小编fra*_*Xis的帖子

根据通配符确定S3存储桶中是否存在对象

有人可以告诉我如何确定S3存储桶中是否存在某个文件/对象,并显示消息是否存在或是否存在.

基本上我想要它:

1)检查我的S3帐户上的一个桶,例如testbucket

2)在该存储桶内部,查看是否存在前缀为test_(test_file.txt或test_data.txt)的文件.

3)如果该文件存在,则显示该文件存在的MessageBox(或控制台消息),或该文件不存在.

有人可以告诉我该怎么做吗?

c# amazon-s3

38
推荐指数
5
解决办法
4万
查看次数

格式化值之间具有相同间距的C#字符串

我有3个字符串.第一组字符串是:

"1.0536"  
"2.1"  
"2" 
Run Code Online (Sandbox Code Playgroud)

第二个是:

"Round"  
"Square"  
"Hex"
Run Code Online (Sandbox Code Playgroud)

最后是:

"6061-T6"  
"T351"  
"ASF.3.4.5" 
Run Code Online (Sandbox Code Playgroud)

我需要将三个字符串组合在一起,每个字符串之间的间距相同.我不能使用\ t进行Tab键,因为在我组合字符串后,我将它们发送到Access数据库.

当我组合字符串时,它们看起来像:

"1.0536 Round 6061-T6"  
"2.1 Square T351"  
"2 Hex ASF.3.4.5" 
Run Code Online (Sandbox Code Playgroud)

我真的希望它们看起来像这样,每个字符串之间的间距相同:

"1.0536 Round 6061-T6"
"2.1 Square T351"
"2 Hex ASF.3.4.5"

我怎么能用C#做到这一点?

c# string

30
推荐指数
3
解决办法
4万
查看次数

如何在Regex表达式中替换实际的星号(*)?

我有一个声明:

我有一个字符串,如

content = "*   test    *"
Run Code Online (Sandbox Code Playgroud)

我想搜索并替换它,所以当我完成时,字符串包含这个:

content = "(*)   test    (*)"
Run Code Online (Sandbox Code Playgroud)

我的代码是:

content = Regex.Replace(content, "*", "(*)");
Run Code Online (Sandbox Code Playgroud)

但这会导致C#中的错误,因为它认为*是正则表达式语法的一部分.

如何修改此代码,以便将字符串中的所有星号更改为(*)而不会导致运行时错误?

c# regex search replace

13
推荐指数
4
解决办法
4万
查看次数

在Visual Studio中签署程序集

我正在尝试签署我的集会,但我收到一个错误:

错误无法在证书库中找到清单签名证书.

这就是我开始做的事情:

  • 我在Visual Studio中右键单击我的项目
  • 单击"属性"
  • 单击"签名"
  • 单击"签署程序集"复选框
  • 选择新建
  • 我给它一个名字和密码

但是当我去编译我的构建时,我得到了错误.

然后我转到项目目录中的.pfx文件,双击它并将其导入证书存储区(并输入与创建证书时相同的密码).

但是在尝试构建项目时我一直遇到同样的错误.我没有选择"签署ClickOnce清单",因为我没有使用该功能.

我该如何解决这个问题?

我正在使用Visual Studio 2010 SP1.

.net certificate visual-studio

9
推荐指数
1
解决办法
4688
查看次数

OpenFileDialog - 仅显示没有扩展名的文件名

我的 C# 程序中有以下代码:

        OpenFileDialog fDialog = new OpenFileDialog();
        fDialog.Title = "Open a file";
        fDialog.Filter =
           "NCF files (*.ncf)|*.ncf|All files (*.*)|*.*|No Extensions (*.)|*.";
Run Code Online (Sandbox Code Playgroud)



我希望能够让用户从以下内容中进行选择:

*.NCF(仅具有 .NCF 扩展名的文件)
**.*(所有文件)

以及没有扩展名的文件,例如:

filewithnoextension



我知道 ***.* 会执行此操作,但它还会显示 .NCF、.TXT 以及同一目录中的所有其他文件。

我只是希望能够显示没有扩展名的文件名。



用*过滤。没有成功。使用 DOS 窗口 ( dir *. ) 时它工作得很好,但 C# 似乎忽略了 *. 筛选。





有没有办法用 C# 来做到这一点?

谢谢。

c# wildcard openfiledialog filter

5
推荐指数
1
解决办法
8086
查看次数

从文本文件中删除某个字符串的最后一个实例,而不更改该字符串的其他实例

我有一个C#程序,我使用很多RegEx.Replace替换文本文件中的文本.

这是我的问题.

在我的文本文件中,我有一个代码,如"M6T1".此代码列在文本文件的许多位置.

但是,我只想从文本文件的底部(最后一个实例)中删除它.文本文件底部始终会有"M6T1",但并不总是最后一行.它可能是从底部开始的第3行,从底部开始的第5行等.

我只想摆脱"M6T1"的最后一个例子,所以RegEx.Replace在这里不起作用.我不想干扰文本文件中其他位置的其他"M6T1".

有人可以帮我解决这个问题吗?

谢谢

c# regex string text replace

5
推荐指数
1
解决办法
5848
查看次数

在绘制按钮后,移动按钮的位置

在我的C#Winform(VS 2010/C#/ .Net 3.5)上,我在设计器中创建了一个按钮.我想根据用户在启动该表单时的设置,将该按钮移动并调整到不同的位置.

在我的表单的加载事件中,我有以下代码来移动和调整按钮的大小:

btnShare.Location = new System.Drawing.Point(16, 496);
btnShare.Margin = new System.Windows.Forms.Padding(4);
btnShare.Size = new System.Drawing.Size(408, 126);
Run Code Online (Sandbox Code Playgroud)

创建按钮的所有代码都是此特定表单的*.designer.cs文件.

问题是:当表单加载时,我可以根据上面的3行代码看到它的新位置中的按钮.但是当表单完成加载并完成所有事件后,该按钮将返回到原始位置,该位置位于*.designer.cs InitalizeComponent()方法中.

我不想从*.designer.cs文件中取出代码并将其仅放入表单的.cs文件中,因为我仍然希望能够在设计表单时看到设计器中的按钮.

如果用户在加载表单时切换了该选项,我只想移动并调整按钮的大小.

我怎么能这样做,因为.Net似乎在加载事件处理后在我的表单上绘制按钮,从而将按钮移回原来的位置?

c# winforms

5
推荐指数
1
解决办法
2万
查看次数

当表单隐藏时,Form.Invoke() 不会运行,

如果我采用 C# 表单 (WinForms) 并使其不可见:

MyForm.Visible = false;
Run Code Online (Sandbox Code Playgroud)

然后在我创建的一个单独的线程中;执行以下代码:

        this.Invoke(new MethodInvoker(delegate()
                                          {
                                              ProgressBar2.Visible = false;
                                          }));
Run Code Online (Sandbox Code Playgroud)

我的申请将被冻结而不会继续。如果 MyForm 可见,则线程中的上述代码运行良好。如果它不可见,则代码在读取“this.Invoke(new MethodInvoker(delegate()”)行后立即停止运行。它不会出错,它只是坐在那里(我设置了一个断点来观察它,它就位于“this.Invoke(new MethodInvoker(delegate()”)之后。

知道为什么当我的表单隐藏时这不会执行吗?我该如何解决这个问题?我正在使用“this.Invoke(new MethodInvoker(delegate()”),因为我需要能够将 MainForm 上的进度栏控件设置为可见(并且我必须在主 UI 线程之外的另一个线程上执行此操作)并且我想要无论表单是否可见,都可以执行此操作。

c# multithreading

5
推荐指数
1
解决办法
1330
查看次数

如何根据调用方法的调用(Button)发送方(按钮#)来操作变量名?

我在C#Winform的面板中有一堆文本框.每行文本框的命名如下:

tb1 tbNickName1 comboBox1
tb2 tbNickName2 comboBox2
tb3 tbNickName3 comboBox3

等等.

我在每行文本框旁边都有一个按钮.但是,不是让按钮指向每个按钮的不同事件,我想将按钮指向button1_Click事件并让它在那里完成所有处理.我知道如何做到这一点,我的所有按钮都指向button1_Click事件.

但我需要能够确定从哪个按钮调用(我能够做到),但我需要操作事件中文本框的名称,这样我就可以根据我在哪一行进行处理/我打电话给的按钮.

例如,如果我在tb2 tbNickName2 comboBox2文本框的第2行,那么我需要能够让button1_Click事件知道这一点,并自动将tb2 tbNickName2 comboBox2值分配给我在下面的示例中使用的tmp变量.

private void button1_Click(object sender, EventArgs e)
{
       Button bt = (Button) sender; //will return 'button1'

       string tmpEmail = null;
       string tmpNickName = null;
       string tmpGroup = null;

       //I don't want to hard code the tb1.Text value here, I want to have
       // the namechange based on which (Button) sender it was called from.

       // For example button1 should assign all the
       // …
Run Code Online (Sandbox Code Playgroud)

c# winforms

5
推荐指数
1
解决办法
2894
查看次数

在方法执行代码时显示进度表单的最佳方法?

我有一个WinForm加载方法,需要很长时间来收集一些数据,以显示给用户.

在执行此方法时,我会显示一个带有大字体的表单,并带有"正在加载"字样.

但是,有时会出现此错误,并且"加载"进度表单不会关闭,然后最终我的整个应用程序将退出:

创建窗口句柄时出错.在System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)

在我在load方法中执行代码时,是否有更好的方法来显示我的进度/加载表单?

这是我的代码:

//I launch a thread here so that way the Progress_form will display to the user
//while the Load method is still executing code.  I can not use .ShowDialog here
//or it will block.

//Progress_form displays the "Loading" form    
Thread t = new Thread(new ThreadStart(Progress_form));  

t.SetApartmentState(System.Threading.ApartmentState.STA);
t.IsBackground = true;
t.Start();

//This is where all the code is that gets the data from the database.  This could
//take upwards of 20+ seconds.

//Now I want …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

3
推荐指数
1
解决办法
2万
查看次数