|
I think this would work if I were on the same server but my issue is I am trying to get the files from another server. Although I am using a virtual path I have to actually change the "Server". Isn't there a way to use a "http://server/folder" path for this?
|
|
|
|
|
I have an ArrayList populated with UserControl objects. I need to display this list on a windows form and when a user clicks on any of the items I need display the properties of the control.
I thought I could use ListBox control since we can populate it with the objects. But the problem is that when I populate the list box I dont get any text values. And if you click on the list box you can clearly see where the items were populated but no textual representation for it.
foreach(UserControl c in mb.UserControls)
{
listBox1.Items.Add(c);
}
unless i do:
foreach(UserControl c in mb.UserControls)
{
listBox1.Items.Add(c.ToString());
}
Its something really simple but for some reason I am not getting it. Would appreciate some help. Thanks.
|
|
|
|
|
Any time you want a list of thing more complex than strings you are likely better off to use the ListView Control
led mike
|
|
|
|
|
Listbox.Items is an ObjectCollect so it can store strings as well as ListBoxItems
only two letters away from being an asset
|
|
|
|
|
Hi,
a ListBox is great at showing a collection of objects in a vertical list. There are basically two
ways to visualize the items:
1.
provide a ToString() method that returns the string you want; it could show whatever
member(s) of the item, or some other calculated value. This way always renders a single
string, all in one color.
2.
or make the entire ListBox userdrawn; by providing a paint handler to the DrawItem event,
you can paint anything you like, even the actual look of the UserControl itself...
You probably will want to show selected items in a different way than unselected ones, e.g.
a different background color.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
well I ended up doing something like this:
Dictionary<int, UserControl> dic = new Dictionary<int, UserControl>();
...
int count = 0;
foreach (UserControl c in mb.UserControls)
{
listBox1.Items.Add(c.Name);
dic.Add(count, c);
count++;
}
and when user double clicks a control I simply use the selectedIndex to pull the control out from dictionary
foreach (KeyValuePair<int, UserControl> kvp in dic)
{
if (kvp.Key == listBox1.SelectedIndex)
{
MessageBox.Show(kvp.Value.Name, kvp.Value.Size.ToString());
winForm.Controls.Add(kvp.Value);
}
}
is that a terrible solution?
|
|
|
|
|
Hi,
if it suits your needs, then it is fine.
One remark though: since all your keys are different (as they should),
and a dictionary has an indexer (i.e. can be read as if it were an array),
there is no need to search for a specific item, you could simply do:
int index=listBox1.SelectedIndex;
if (index>=0) {
UserControl uc=dic[index];
MessageBox.Show(uc.Name, uc.Size.ToString());
winForm.Controls.Add(uc);
}
BTW: you don't really need a Dictionary, a simple List< UserControl> would work
the same way.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
#region Using<br />
using System;<br />
using System.Collections.Generic;<br />
using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Audio;<br />
using Microsoft.Xna.Framework.Content;<br />
using Microsoft.Xna.Framework.GamerServices;<br />
using Microsoft.Xna.Framework.Graphics;<br />
using Microsoft.Xna.Framework.Input;<br />
using Microsoft.Xna.Framework.Net;<br />
using Microsoft.Xna.Framework.Storage;<br />
#endregion<br />
<br />
namespace Bouncer<br />
{<br />
#region Bouncer Game : Main<br />
public class BouncerGame : Microsoft.Xna.Framework.Game<br />
{<br />
#region Variables<br />
GraphicsDeviceManager Graphics;<br />
SpriteBatch SpriteBatch;<br />
SpriteFont SpriteFont;<br />
<br />
Player Player;<br />
StaticBlock[] StaticBlock = new StaticBlock[200];<br />
<br />
int Stage = 1;<br />
<br />
enum GameState<br />
{<br />
Title,<br />
Game,<br />
StageSelect,<br />
Help<br />
}<br />
<br />
GameState State = new GameState();<br />
#endregion<br />
<br />
#region Performance Variables<br />
int FPS,<br />
FrameCounter;<br />
<br />
TimeSpan ElapsedTime = TimeSpan.Zero;<br />
#endregion<br />
<br />
#region Initialization<br />
public BouncerGame()<br />
{<br />
Graphics = new GraphicsDeviceManager(this);<br />
Content.RootDirectory = "Content";<br />
}<br />
<br />
protected override void Initialize()<br />
{<br />
IsFixedTimeStep = false;<br />
<br />
InitializePlayer();<br />
InitializeStaticBlock();<br />
<br />
base.Initialize();<br />
}<br />
<br />
private void InitializePlayer()<br />
{<br />
Player = new Player();<br />
}<br />
<br />
private void InitializeStaticBlock()<br />
{<br />
for (int numberOfStaticBlocks = 0; numberOfStaticBlocks < 200; ++numberOfStaticBlocks)<br />
{<br />
StaticBlock[numberOfStaticBlocks] = new StaticBlock();<br />
}<br />
}<br />
#endregion<br />
<br />
#region Load<br />
protected override void LoadContent()<br />
{<br />
SpriteBatch = new SpriteBatch<br />
(GraphicsDevice);<br />
<br />
SpriteFont = Content.Load<SpriteFont><br />
("Trebuchet MS");<br />
<br />
Player.Texture_Player = Content.Load<Texture2D><br />
("BouncerSprite_Bouncer");<br />
<br />
for (int numberOfStaticBlocks = 0; numberOfStaticBlocks < 200; ++numberOfStaticBlocks)<br />
{<br />
StaticBlock[numberOfStaticBlocks].Texture_StaticBlock = Content.Load<Texture2D><br />
("BouncerSprite_StaticBlock");<br />
}<br />
}<br />
#endregion<br />
<br />
#region Unload<br />
protected override void UnloadContent()<br />
{<br />
Content.Unload();<br />
Content.Dispose();<br />
}<br />
#endregion<br />
<br />
#region Update<br />
protected override void Update(GameTime gameTime)<br />
{<br />
#region Input<br />
{<br />
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed<br />
|| Keyboard.GetState().IsKeyDown(Keys.Escape))<br />
{<br />
this.Exit();<br />
}<br />
<br />
if (GamePad.GetState(PlayerIndex.One).Buttons.LeftStick == ButtonState.Pressed)<br />
{<br />
Player.Position = new Vector2(50, 50);<br />
}<br />
<br />
Player.ForwardMovement.X = GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.X * 5;<br />
Player.ForwardMovement.Y = -GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.Y * 5;<br />
}<br />
#endregion<br />
<br />
#region World<br />
{<br />
Player.Position += Player.ForwardMovement;<br />
<br />
<br />
<br />
for (int NumberOfStaticBlocks = 0; NumberOfStaticBlocks < 150; ++NumberOfStaticBlocks)<br />
{<br />
CheckBounds(Player, StaticBlock[NumberOfStaticBlocks]);<br />
}<br />
<br />
SetStaticBlockPositions(Stage);<br />
}<br />
#endregion<br />
<br />
#region Performance<br />
{<br />
ElapsedTime += gameTime.ElapsedGameTime;<br />
<br />
if (ElapsedTime > TimeSpan.FromSeconds(0))<br />
{<br />
ElapsedTime -= TimeSpan.FromSeconds(1);<br />
FPS = FrameCounter;<br />
FrameCounter = 0;<br />
}<br />
<br />
FrameCounter++;<br />
}<br />
#endregion<br />
<br />
base.Update(gameTime);<br />
}<br />
#endregion<br />
<br />
#region Draw<br />
protected override void Draw(GameTime gameTime)<br />
{<br />
Graphics.GraphicsDevice.Clear<br />
(Color.Gray);<br />
<br />
SpriteBatch.Begin();<br />
{<br />
#region Performance<br />
SpriteBatch.DrawString<br />
(SpriteFont, "Vector: " + Player.Position.ToString(), new Vector2(150, 50), Color.White);<br />
<br />
SpriteBatch.DrawString<br />
(SpriteFont, "Y Value: " + Player.ForwardMovement.Y / 2, new Vector2(450, 50), Color.White);<br />
<br />
if (FPS > 60)<br />
{<br />
SpriteBatch.DrawString<br />
(SpriteFont, "FPS: " + FPS, new Vector2(50, 50), Color.White);<br />
}<br />
<br />
if (FPS == 60)<br />
{<br />
SpriteBatch.DrawString<br />
(SpriteFont, "FPS: " + FPS, new Vector2(50, 50), Color.Gainsboro);<br />
}<br />
<br />
if (FPS < 60<br />
&& FPS >= 30)<br />
{<br />
SpriteBatch.DrawString<br />
(SpriteFont, "FPS: " + FPS, new Vector2(50, 50), Color.DarkGray);<br />
}<br />
<br />
if (FPS < 30)<br />
{<br />
SpriteBatch.DrawString<br />
(SpriteFont, "FPS: " + FPS, new Vector2(50, 50), Color.DimGray);<br />
}<br />
<br />
if (FPS <= 5)<br />
{<br />
SpriteBatch.DrawString<br />
(SpriteFont, "FPS: " + FPS, new Vector2(50, 50), Color.Black);<br />
}<br />
#endregion<br />
<br />
#region Game<br />
Player.DrawPlayer<br />
(SpriteBatch, Player.Texture_Player);<br />
<br />
for (int numberOfStaticBlocks = 0; numberOfStaticBlocks < 150; ++numberOfStaticBlocks)<br />
{<br />
StaticBlock[numberOfStaticBlocks].DrawStaticBlock<br />
(SpriteBatch, StaticBlock[numberOfStaticBlocks].Texture_StaticBlock);<br />
}<br />
#endregion<br />
}<br />
SpriteBatch.End();<br />
<br />
base.Draw(gameTime);<br />
}<br />
#endregion<br />
<br />
#region Setting Static Block Positions<br />
void SetStaticBlockPositions(int currentStage)<br />
{<br />
switch (Stage)<br />
{<br />
case 1:<br />
{<br />
#region Static Block Positions<br />
StaticBlock[0].Position = new Vector2(0, 0);<br />
StaticBlock[1].Position = new Vector2(0, 25);<br />
StaticBlock[2].Position = new Vector2(0, 50);<br />
StaticBlock[3].Position = new Vector2(0, 75);<br />
StaticBlock[4].Position = new Vector2(0, 100);<br />
StaticBlock[5].Position = new Vector2(0, 125);<br />
StaticBlock[6].Position = new Vector2(0, 150);<br />
StaticBlock[7].Position = new Vector2(0, 175);<br />
StaticBlock[8].Position = new Vector2(0, 200);<br />
StaticBlock[9].Position = new Vector2(0, 225);<br />
StaticBlock[10].Position = new Vector2(0, 250);<br />
StaticBlock[11].Position = new Vector2(0, 275);<br />
StaticBlock[12].Position = new Vector2(0, 300);<br />
StaticBlock[13].Position = new Vector2(0, 325);<br />
StaticBlock[14].Position = new Vector2(0, 350);<br />
StaticBlock[15].Position = new Vector2(0, 375);<br />
StaticBlock[16].Position = new Vector2(0, 400);<br />
StaticBlock[17].Position = new Vector2(0, 425);<br />
StaticBlock[18].Position = new Vector2(0, 450);<br />
StaticBlock[19].Position = new Vector2(0, 475);<br />
StaticBlock[20].Position = new Vector2(0, 500);<br />
StaticBlock[21].Position = new Vector2(0, 525);<br />
StaticBlock[22].Position = new Vector2(0, 550);<br />
StaticBlock[23].Position = new Vector2(0, 575);<br />
<br />
StaticBlock[24].Position = new Vector2(775, 0);<br />
StaticBlock[25].Position = new Vector2(775, 25);<br />
StaticBlock[26].Position = new Vector2(775, 50);<br />
StaticBlock[27].Position = new Vector2(775, 75);<br />
StaticBlock[28].Position = new Vector2(775, 100);<br />
StaticBlock[29].Position = new Vector2(775, 125);<br />
StaticBlock[30].Position = new Vector2(775, 150);<br />
StaticBlock[31].Position = new Vector2(775, 175);<br />
StaticBlock[32].Position = new Vector2(775, 200);<br />
StaticBlock[33].Position = new Vector2(775, 225);<br />
StaticBlock[34].Position = new Vector2(775, 250);<br />
StaticBlock[35].Position = new Vector2(775, 275);<br />
StaticBlock[36].Position = new Vector2(775, 300);<br />
StaticBlock[37].Position = new Vector2(775, 325);<br />
StaticBlock[38].Position = new Vector2(775, 350);<br />
StaticBlock[39].Position = new Vector2(775, 375);<br />
StaticBlock[40].Position = new Vector2(775, 400);<br />
StaticBlock[41].Position = new Vector2(775, 425);<br />
StaticBlock[42].Position = new Vector2(775, 450);<br />
StaticBlock[43].Position = new Vector2(775, 475);<br />
StaticBlock[44].Position = new Vector2(775, 500);<br />
StaticBlock[45].Position = new Vector2(775, 525);<br />
StaticBlock[46].Position = new Vector2(775, 550);<br />
StaticBlock[47].Position = new Vector2(775, 575);<br />
<br />
StaticBlock[48].Position = new Vector2(25, 575);<br />
StaticBlock[49].Position = new Vector2(50, 575);<br />
StaticBlock[50].Position = new Vector2(75, 575);<br />
StaticBlock[51].Position = new Vector2(100, 575);<br />
StaticBlock[52].Position = new Vector2(125, 575);<br />
StaticBlock[53].Position = new Vector2(150, 575);<br />
StaticBlock[54].Position = new Vector2(175, 575);<br />
StaticBlock[55].Position = new Vector2(200, 575);<br />
StaticBlock[56].Position = new Vector2(225, 575);<br />
StaticBlock[57].Position = new Vector2(250, 575);<br />
StaticBlock[58].Position = new Vector2(275, 575);<br />
StaticBlock[59].Position = new Vector2(300, 575);<br />
StaticBlock[60].Position = new Vector2(325, 575);<br />
StaticBlock[61].Position = new Vector2(350, 575);<br />
StaticBlock[62].Position = new Vector2(375, 575);<br />
StaticBlock[63].Position = new Vector2(400, 575);<br />
StaticBlock[64].Position = new Vector2(425, 575);<br />
StaticBlock[65].Position = new Vector2(450, 575);<br />
StaticBlock[66].Position = new Vector2(475, 575);<br />
StaticBlock[67].Position = new Vector2(500, 575);<br />
StaticBlock[68].Position = new Vector2(525, 575);<br />
StaticBlock[69].Position = new Vector2(550, 575);<br />
StaticBlock[70].Position = new Vector2(575, 575);<br />
StaticBlock[71].Position = new Vector2(600, 575);<br />
StaticBlock[72].Position = new Vector2(625, 575);<br />
StaticBlock[73].Position = new Vector2(650, 575);<br />
StaticBlock[74].Position = new Vector2(675, 575);<br />
StaticBlock[75].Position = new Vector2(700, 575);<br />
StaticBlock[76].Position = new Vector2(725, 575);<br />
StaticBlock[77].Position = new Vector2(750, 575);<br />
<br />
StaticBlock[78].Position = new Vector2(25, 0);<br />
StaticBlock[79].Position = new Vector2(50, 0);<br />
StaticBlock[80].Position = new Vector2(75, 0);<br />
StaticBlock[81].Position = new Vector2(100, 0);<br />
StaticBlock[82].Position = new Vector2(125, 0);<br />
StaticBlock[83].Position = new Vector2(150, 0);<br />
StaticBlock[84].Position = new Vector2(175, 0);<br />
StaticBlock[85].Position = new Vector2(200, 0);<br />
StaticBlock[86].Position = new Vector2(225, 0);<br />
StaticBlock[87].Position = new Vector2(250, 0);<br />
StaticBlock[88].Position = new Vector2(275, 0);<br />
StaticBlock[89].Position = new Vector2(300, 0);<br />
StaticBlock[90].Position = new Vector2(325, 0);<br />
StaticBlock[91].Position = new Vector2(350, 0);<br />
StaticBlock[92].Position = new Vector2(375, 0);<br />
StaticBlock[93].Position = new Vector2(400, 0);<br />
StaticBlock[94].Position = new Vector2(425, 0);<br />
StaticBlock[95].Position = new Vector2(450, 0);<br />
StaticBlock[96].Position = new Vector2(475, 0);<br />
StaticBlock[97].Position = new Vector2(500, 0);<br />
StaticBlock[98].Position = new Vector2(525, 0);<br />
StaticBlock[99].Position = new Vector2(550, 0);<br />
StaticBlock[100].Position = new Vector2(575, 0);<br />
StaticBlock[101].Position = new Vector2(600, 0);<br />
StaticBlock[102].Position = new Vector2(625, 0);<br />
StaticBlock[103].Position = new Vector2(650, 0);<br />
StaticBlock[104].Position = new Vector2(675, 0);<br />
StaticBlock[105].Position = new Vector2(700, 0);<br />
StaticBlock[106].Position = new Vector2(725, 0);<br />
StaticBlock[107].Position = new Vector2(750, 0);<br />
#endregion<br />
}<br />
break;<br />
}<br />
}<br />
#endregion<br />
<br />
#region Collision<br />
public void CheckBounds(Player player, StaticBlock block)<br />
{<br />
if (GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.X < 0)<br />
{<br />
if (player.Position.X < block.Position.X + 25<br />
&& player.Position.X + 25 > block.Position.X)<br />
{<br />
player.Position.X = block.Position.X + 25;<br />
}<br />
}<br />
}<br />
#endregion<br />
}<br />
#endregion<br />
<br />
#region Player<br />
public class Player<br />
{<br />
public Texture2D Texture_Player;<br />
<br />
public Vector2 Position = new Vector2(50, 50),<br />
ForwardMovement;<br />
<br />
public float Rotation = 0.0f;<br />
<br />
public void DrawPlayer(SpriteBatch spriteBatch, Texture2D player)<br />
{<br />
spriteBatch.Draw<br />
(player, Position, null, Color.White, 0, new Vector2(0, 0), .5f, SpriteEffects.None, 1);<br />
}<br />
}<br />
#endregion<br />
<br />
#region Flare<br />
public class Flare<br />
{<br />
public Texture2D Texture_Flare;<br />
<br />
public Vector2 Position,<br />
ForwardMovement;<br />
<br />
public void DrawFlare(SpriteBatch spriteBatch, Texture2D flare)<br />
{<br />
spriteBatch.Draw<br />
(flare, Position, Color.White);<br />
}<br />
}<br />
#endregion<br />
<br />
#region Static Block<br />
public class StaticBlock<br />
{<br />
public Texture2D Texture_StaticBlock;<br />
<br />
public Vector2 Position;<br />
<br />
public void DrawStaticBlock(SpriteBatch spriteBatch, Texture2D staticBlock)<br />
{<br />
spriteBatch.Draw<br />
(staticBlock, Position, Color.White);<br />
}<br />
}<br />
#endregion<br />
}<br />
Can anyone help me with this monster? I want to be able to do collision detection for ALL OF my StaticBLocks (with the Player: BTW both 25X25) and make them not move in the direction they are bumping. I can do collision for 1 block, but how would I do this for all 200?
- I love D-flat!
- Need. More. Code.
|
|
|
|
|
Hi,
I don't think we needed all that code to try and answer the question at the bottom...
I once did multi-object collision by drawing everything in a hidden bitmap, using:
- two colors only (empty and filled);
- reduced resolution (if everything is a multiple of 25, then divide all coordinates by 25).
In such a bitmap you can detect possible moves and collisions before you apply them to the
"real world". You may want to use more than two colors, say one for empty and one for each
of the objects, that way you know immediately with which object you are going to collide.
Final remark: it does not have to be a real Bitmap and GDI+ operations, you could simply use a
two-dimensional array and manipulate the "pixels" yourself, removing a rectangular object
is a simple clear in two nested fors, adding it at a (slightly) different position is similar.
Collision detection can be handled by just peeking at the intended new positions of the
leading edges.
BTW: nevertheless I like to do it in a paintable way, and for debugging purposes I have
a checkbox that chooses to show either the real world or the simulated world, at the same
location on screen (rescaled to undo the reduced resolution); doing so any bugs become
noticeable right away.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Does GDI and such apply fo XNA?
And thank you for your reply, even if I have some trouble with it.
Another Possible Way?:
Is there a way to check collisions with all of the StaticBlocks with a for loop with good performance results? I tried something like this, but the framerate dipped to around 10...
- I love D-flat!
- Need. More. Code.
|
|
|
|
|
MasterSharp wrote: Does GDI and such apply fo XNA?
I don't know. Anyway, I told you you don't really need GDI+, a 2D array and some simple loops
is sufficient.
Furthermore if XNA does not support GDI+, it must have another way to create and operate on
bitmaps without showing them all the time.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
OK, thanks, Luc!
- I love D-flat!
- Need. More. Code.
|
|
|
|
|
Typically you'd store your scene data in a quadtree setup which would let you pick out all the StaticBlocks that are relevant to your player (in the same region). Then its fairly trivial to check if two squares will intersect...
|
|
|
|
|
Hi, I have run into a small problem reading text from a file.
Consider this line below as part of the source file.
(Code 1956, § 486.01)
I'm using the good old Streamreader to read the file.
string line = sourceStreamReader.ReadLine();
When this line executes on the above source line the "Section" character " §" is read as char 65533.
I've declare the streamreader as follows.
<br />
StreamReader sourceStreamReader = new StreamReader(sourceFiles[i].ToString());<br />
System.Diagnostics.Debug.WriteLine(sourceStreamReader.CurrentEncoding.EncodingName);<br />
the output from the debug line tells me thats its UTF-8 encoding, but the "section" character is not read nor writes as its original value.
Can someone please tell me where I went wrong!
Just because we can; does not mean we should.
|
|
|
|
|
As it turns out, changing the code to the listing below resolved my issue.
<br />
FileStream fStream = File.OpenRead(sourceFiles[i].ToString());<br />
byte[] buffer = new byte[fStream.Length];<br />
int bytesRead;<br />
bytesRead = fStream.Read(buffer, 0, buffer.Length);<br />
<br />
<br />
fStream.Close();<br />
Decoder decoder = Encoding.Default.GetDecoder();<br />
char[] cBuffer = new char[buffer.Length];<br />
int bytesConverted, charsConverted;<br />
bool bCompleted;<br />
<br />
decoder.Convert(buffer, 0, buffer.Length, cBuffer, 0, buffer.Length, false, out bytesConverted, out charsConverted, out bCompleted);<br />
Just because we can; does not mean we should.
|
|
|
|
|
KaptinKrunch wrote: changing the code to the listing below resolved my issue.
That means that the file is not at all Unicode, but ANSI.
KaptinKrunch wrote: bytesRead = fStream.Read(buffer, 0, buffer.Length);
Ouch. You read from the file, but you ignore the result. The Read method doesn't have to read as much data as you request. You have to loop until all data is read, or the method return zero.
The easiest is of course to just replace all that code with:
string text = File.ReadAllText(sourceFiles[i].ToString(), Encoding.Default);
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
Hi all,
Any one suggest me how to get a file from a folder using the partial file name. It's similar to wildcard search in database.
For eg:
in my folder there are files with following name.
sample_text.txt, sample_data.txt,samplefile,data_text.txt
in the above files i have to get the file list which name starts with sample_ like this.
is it possible to do this using regular expression?
Please suggest me
Thanks in advance
Know is Drop, Unknown is Ocean
|
|
|
|
|
Use the System.IO.Directory.GetFiles() method. Set your search expression to 'sample_*.*'.
Paul Marfleet
"No, his mind is not for rent
To any God or government"
Tom Sawyer - Rush
|
|
|
|
|
Thank you very much for your replay. I tried the above suggestion. But it returning me Illegal Charter path error.
My sample code:
string filenamesss = Directory.GetFiles("c:\\samplefiles\\20*.pdf");
Know is Drop, Unknown is Ocean
|
|
|
|
|
Try this if the documentation you read does not make it clear. BTW, Directory.GetFiles returns a string array!
string[] filenamesss = Directory.GetFiles("c:\\samplefiles\\", "*.PDF", System.IO.SearchOption.TopDirectoryOnly);
OR
<br />
string[] filenamesss = Directory.GetFiles("c:\\samplefiles\\", "*.PDF", System.IO.SearchOption.AllDirectories);
Just because we can; does not mean we should.
|
|
|
|
|
|
Hi gareth,
Thousands of thanks to you. It's really working good. also i got an chance to learn more things from that link.
Thank you once again to all
Know is Drop, Unknown is Ocean
|
|
|
|
|
Is it possible to create static extension methods in the latest .Net framework? I presently have the following scenario:
I have a bottom level project, call it Base, that defines some objects that
are common accross multiple solution files (lets use UInt128 as an example)
I have a Web Service API project, call it WebAPI, that only contains a web reference
I have a main project file, call it Main, that has a reference to both Base and WebAPI The problem is that WebAPI contains a class, WebAPI.UInt128, that is logically equivalent to Base.UInt128. Now, I want to add an explicit operator to case a WebAPI.UInt128 into a Base.UInt128 and back. Since neither the WebAPI nor the Base projects have a reference to both types, I wanted to define this operator in the place that makes the most sence, which is within the Main project. Is there some way to do this? Thanks in advance,
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|
Yes with framework 3.5 you can create extension methods. Although I would think it better to define it in base and have WebAPI use that reference. Creating a class with the same name in different namespaces, with presumably different functionality will lead to confusing code that is difficult to maintain.
only two letters away from being an asset
|
|
|
|
|
I actually don't create two different classes with the same name... Visual Studio does it for me. Basically, the WebAPI.UInt128 only contains the serialized data from within the Base.UInt128 class, even though both are logically equivalent. However, since the WebAPI is automatically generated and in actuallity does not depend on Base, I should not need to add that reference to the WebAPI project. For a client that DOES have access to both WebAPI and Base, that client should be able to use either UInt128 class interchangeably. That is why I asked for such a thing.
Mark Nischalke wrote: Yes with framework 3.5 you can create extension methods.
Could you please provide an example of how I would declare the following from within the Main project? I am having a hard time finding any documentation describing how to externally define static extension methods.
public static explicit operator WebAPI.UInt128(Base.UInt128 other) { ... } Thanks,
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|