我想检查字符串是否是文件名(名称为DOT ext).
文件名不能包含 / ? * : ; { } \
你能建议我在preg_match()中使用正则表达式吗?
在.net中是否有内置方法来编码文件路径,就像编码url一样?例如,如果我在文件名中有非法字符,比如"what:whatever",我希望它编码":",所以它仍然存在,只是进行编码,以便系统接受它.我想做点什么Path.Encode(fileName)
有什么像这样的吗?
这就是我正在做的事情.我在wikipedia.org上搜索我在www.wikipediamaze.com上创建的游戏.当我进行屏幕抓取时,我将结果缓存到我的app_data文件夹中的文件中,该文件与我所在的维基百科网站的当前主题的名称相匹配.例如,如果我在这个位置:
http://www.wikipedia.org/wiki/Kevin_Bacon
然后我刮掉那个页面,解析它,清理它等等,然后缓存在磁盘上以便以后更快地退出.它被存储在该位置/App_Data/Kevin_Bacon (no file extension).这非常有用,除非我在一个页面上
http://www.wikipedia.org/wiki/Wikipedia:About
尝试创建文件/App_Data/Wikipedia:About显然不起作用,因为':'字符在文件名中是非法的.
UPDATE
这对我很有用:
public static string EncodeAsFileName(this string fileName)
{
return Regex.Replace(fileName, "[" + Regex.Escape(
new string(Path.GetInvalidFileNameChars())) + "]", " ");
}
Run Code Online (Sandbox Code Playgroud) 有没有办法通过Gem模块检查当前是否安装了某些gem?从ruby代码,而不是通过执行'宝石列表'...
澄清 - 我不想加载库.我只是想检查它是否可用,所以所有的rescue LoadError解决方案都没有帮助我.此外,我不在乎宝石本身是否有效,只是它是否已安装.
我正在尝试编写一个库,以便它足够通用,有用.问题是它需要更新其他类的属性,属性和类都应该是动态的.
现在我可以使用公共变量做到没有问题,我只是传递一个指向我想要更新的变量的指针.然而,设置类的属性也是非常有用的,因为它们在目标C中被如此自由地使用.
现在,只要属性是对象类型,尝试设置基本类型属性,这也不是问题.
我当前的代码看起来像这些行的属性:
NSInvocation* invoc = [NSInvocation invocationWithMethodSignature:[[myInstance class] instanceMethodSignatureForSelector:mySelector]];
[invoc setTarget:myInstance];
[invoc setSelector:mySelector];
[invoc setArgument:&myObject atIndex:2];
[invoc invoke];
Run Code Online (Sandbox Code Playgroud)
但是,setArgument方法仅允许指针类型,但允许属性具有任何基本类型.有没有办法动态分配基本类型属性?
有人能帮忙吗...
vector<unsigned int> *vVec = new vector<unsigned int>;
vVec .reserve(frankReservedSpace);
start = std::clock();
for(int f=0; f<sizeOfvec; f++)
{ //Populate the newly created vector on the heap
vVec .push_back(pArray[f]);
}
Run Code Online (Sandbox Code Playgroud)
我得到了:错误C2228:'.reserve'的左边必须有class/struct/union
我正在使用new运算符创建一个向量,以便它比创建它的函数更长.因此,这给了我一个指向堆上的向量而不是实际向量对象本身的指针.因此它不会让我执行push_backs的任何.reserve().我看不到它的方法,有人可以帮忙吗?
我有一个wx.Frame,其中有一个主要的wx.Panel,里面有几个小部件.我想在那里放一个按钮,让"帮助面板"出现.这个帮助面板可能是一个wx.Panel,我希望它覆盖整个主wx.Panel(不包括wx.Frame的菜单栏).帮助按钮上应该有某种关闭按钮,它会再次消失.
实现这一目标的好方法是什么?我已经研究了wx.Notebook,但还没有找到一种让它不显示标签的方法.
请注意,每次用户关闭并打开它时,我都不想破坏并重新创建帮助面板:我只是希望它被隐藏.
我见过Ryan Bates谈论exception_logger和异常通知.还有其他好的东西需要考虑吗?你喜欢和不喜欢这些什么?
另外,如果你抓住它们,这些异常通知程序会记录异常吗?
谢谢!
假设我有这门课程:
public class A {
private HashMap<String, B> map;
@XmlElement
private void setB(ArrayList<B> col) {
...
}
private ArrayList<B> getB() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
当尝试使用JaxB将xml文档解组到此类时,我注意到,而不是调用setB()方法并向我发送B实例列表,JaxB实际上调用了getB()并将B实例添加到返回的列表中.为什么?
我想要调用setter的原因是该列表实际上只是一个临时存储,我想从中构建map字段,所以我想在setter中这样做.
谢谢.
public void MyTest()
{
bool eventFinished = false;
myEventRaiser.OnEvent += delegate { doStuff(); eventFinished = true; };
myEventRaiser.RaiseEventInSeperateThread()
while(!eventFinished) Thread.Sleep(1);
Assert.That(stuff);
}
Run Code Online (Sandbox Code Playgroud)
为什么eventFinished不能变得不稳定并且重要吗?
在我看来,在这种情况下,编译器或运行时可能会变得聪明,并且在while循环中"知道"eventFinished只能为false.特别是当您考虑提升变量作为类的成员生成的方式以及委托作为同一类的方法时,从而剥夺了eventFinished曾经是局部变量这一事实的优化.
我见过@某些功能的使用,如下所示:
$fileHandle = @fopen($fileName, $writeAttributes);
Run Code Online (Sandbox Code Playgroud)
这个符号有什么用?