I want to put in the string name into the code so i can create a folder named by the textbox input. How can I modify this code to do that?
string name = txtUsername.Text;
string path = Server.MapPath("~/here the string name /");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string path = Server.MapPath("~/" + name);
Related
Suppose i have a folder and in this folder is an image named im1.png. i want that im1.png is deleted when i save another image named im1.jpg or im1.bmp or so on...(same name but different type) in this folder. i write following code but this code just delete file that has same name and same type. Help me please...
string CopyPic(string MySourcePath, string key, string imgNum)
{
string curpath;
string newpath;
curpath = Application.Current + #"\FaceDBIMG\" + key;
if (Directory.Exists(curpath) == false)
Directory.CreateDirectory(curpath);
newpath = curpath + "\\" + imgNum + MySourcePath.Substring(MySourcePath.LastIndexOf("."));
string[] similarFiles = Directory.GetFiles(curpath, imgNum + ".*").ToArray();
foreach (var similarFile in similarFiles)
File.Delete(similarFile);
File.Copy(MySourcePath, newpath);
return newpath;
}
Here is one way to do it:
string filename = ...; //e.g. c:\directory\filename.ext
//Get the directory where the file lives
string dir = Path.GetDirectoryName(filename);
//Get the filename without the extension to use it to search the directory for similar files
string filenameWithoutExtension = Path.GetFileNameWithoutExtension(filename);
//Search the directory for files with same name, but with any extension
//We use the Except method to remove the file it self form the search results
string[] similarFiles =
Directory.GetFiles(dir, filenameWithoutExtension + ".*")
.Except(
new []{filename},
//We should ignore the case when we remove the file itself
StringComparer.OrdinalIgnoreCase)
.ToArray();
//Delete these files
foreach(var similarFile in similarFiles)
File.Delete(similarFile);
I have a string that defines the path of a file:
string duplicateFilePath = D:\User\Documents\processed\duplicate_files\file1.jpg;
I am going to move a file to this location but sometimes a file with the identical name exists all ready. In this case I want to differentiate the filename. I have the crc value of each file available so I figured that may be good to use to ensure individual file names. I can create:
string duplicateFilePathWithCrc = duplicateFilePath + "(" + crcValue + ")";
But this gives:
D:\User\Documents\processed\duplicate_files\file1.jpg(crcvalue);
and I need:
D:\User\Documents\processed\duplicate_files\file1(crcvalue).jpg;
How can I put the crcvalue into the string before the file extension, bearing in mind there could be other .'s in the file path and file extensions vary?
Use the static methods in the System.IO.Path class to split the filename and add a suffix before the extension.
string AddSuffix(string filename, string suffix)
{
string fDir = Path.GetDirectoryName(filename);
string fName = Path.GetFileNameWithoutExtension(filename);
string fExt = Path.GetExtension(filename);
return Path.Combine(fDir, String.Concat(fName, suffix, fExt));
}
string newFilename = AddSuffix(filename, String.Format("({0})", crcValue));
int value = 42;
var path = #"D:\User\Documents\processed\duplicate_files\file1.jpg";
var fileName = String.Format("{0}({1}){2}",
Path.GetFileNameWithoutExtension(path), value, Path.GetExtension(path));
var result = Path.Combine(Path.GetDirectoryName(path), fileName);
Result:
D:\User\Documents\processed\duplicate_files\file1(42).jpg
Something like this
string duplicateFilePath = #"D:\User\Documents\processed\duplicate_files\file1.jpg";
string crcValue = "ABCDEF";
string folder = Path.GetDirectoryName(duplicateFilePath);
string filename = Path.GetFileNameWithoutExtension(duplicateFilePath);
string extension = Path.GetExtension(duplicateFilePath);
string newFilename = String.Format("{0}({1}){2}", filename, crcValue, extension);
string path_with_crc = Path.Combine(folder,newFilename );
This can also be achieved by using Replace:
using System.IO;
string duplicateFilePathWithCrc = duplicateFilePath.Replace(
Path.GetFileNameWithoutExtension(duplicateFilePath),
Path.GetFileNameWithoutExtension(duplicateFilePath + "(" + crcValue + ")"),
);
Try using the Path class (it's in the System.IO namespace):
string duplicateFilePathWithCrc = Path.Combine(
Path.GetDirectoryName(duplicateFilePath),
string.Format(
"{0}({1}){2}",
Path.GetFileNameWithoutExtension(duplicateFilePath),
crcValue,
Path.GetExtension(duplicateFilePath)
)
);
My image URL is like this:
photo\myFolder\image.jpg
I want to change it so it looks like this:
photo\myFolder\image-resize.jpg
Is there any short way to do it?
This following code snippet changes the filename and leaves the path and the extenstion unchanged:
string path = #"photo\myFolder\image.jpg";
string newFileName = #"image-resize";
string dir = Path.GetDirectoryName(path);
string ext = Path.GetExtension(path);
path = Path.Combine(dir, newFileName + ext); // #"photo\myFolder\image-resize.jpg"
You can use Path.GetFileNameWithoutExtension method.
Returns the file name of the specified path string without the extension.
string path = #"photo\myFolder\image.jpg";
string file = Path.GetFileNameWithoutExtension(path);
string NewPath = path.Replace(file, file + "-resize");
Console.WriteLine(NewPath); //photo\myFolder\image-resize.jpg
Here is a DEMO.
This is what i use for file renaming
public static string AppendToFileName(string source, string appendValue)
{
return $"{Path.Combine(Path.GetDirectoryName(source), Path.GetFileNameWithoutExtension(source))}{appendValue}{Path.GetExtension(source)}";
}
I would use a method like this:
private static string GetFileNameAppendVariation(string fileName, string variation)
{
string finalPath = Path.GetDirectoryName(fileName);
string newfilename = String.Concat(Path.GetFileNameWithoutExtension(fileName), variation, Path.GetExtension(fileName));
return Path.Combine(finalPath, newfilename);
}
In this way:
string result = GetFileNameAppendVariation(#"photo\myFolder\image.jpg", "-resize");
Result: photo\myFolder\image-resize.jpg
Or the File.Move method:
System.IO.File.Move(#"photo\myFolder\image.jpg", #"photo\myFolder\image-resize.jpg");
BTW: \ is a relative Path and / a web Path, keep that in mind.
You can try this
string fileName = #"photo\myFolder\image.jpg";
string newFileName = fileName.Substring(0, fileName.LastIndexOf('.')) +
"-resize" + fileName.Substring(fileName.LastIndexOf('.'));
File.Copy(fileName, newFileName);
File.Delete(fileName);
try this
File.Copy(Server.MapPath("~/") +"photo/myFolder/image.jpg",Server.MapPath("~/") +"photo/myFolder/image-resize.jpg",true);
File.Delete(Server.MapPath("~/") + "photo/myFolder/image.jpg");
How do I get the full path for a given file?
e.g. I provide:
string filename = #"test.txt";
Result should be:
Full File Path = C:\Windows\ABC\Test\test.txt
Try
string fileName = "test.txt";
FileInfo f = new FileInfo(fileName);
string fullname = f.FullName;
Use Path.GetFullPath():
http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath.aspx
This should return the full path information.
You Can use:
string path = Path.GetFullPath(FileName);
it will return the Full path of that mentioned file.
Directory.GetCurrentDirectory
string dirpath = Directory.GetCurrentDirectory();
Prepend this dirpath to the filename to get the complete path.
As #Dan Puzey indicated in the comments, it would be better to use Path.Combine
Path.Combine(Directory.GetCurrentDirectory(), filename)
I know my answer it's too late, but it might helpful to other's
Try,
Void Main()
{
string filename = #"test.txt";
string filePath= AppDomain.CurrentDomain.BaseDirectory + filename ;
Console.WriteLine(filePath);
}
try..
Server.MapPath(FileUpload1.FileName);
try:
string fileName = #"test.txt";
string currentDirectory = Directory.GetCurrentDirectory();
string[] fullFilePath = Directory.GetFiles(currentDirectory, filename, SearchOption.AllDirectories);
it will return full path of all such files in the current directory and its sub directories to string array fullFilePath. If only one file exist it will be in "fullFileName[0]".
private const string BulkSetPriceFile = "test.txt";
...
var fullname = Path.GetFullPath(BulkSetPriceFile);
You can get the current path:
string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();
Good luck!
I have some problem with my open new window popup which it can read my path and it like throw away my "/" sign in it. So it will be see like this "C:UsersKHAIRADesktopheitechHibah Total v1.2/Secure/PDF Folder"
Can anyone help me to make it look/read like this "C:Users/KHAIRA/Desktop/heitech/Hibah Total v1.2/Secure/PDF Folder".
I have open button in gridview that will open new window and view the pdf file here the coding from ViewDocument.aspx
string commandName = e.CommandName.ToString().Trim();
GridViewRow row = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];
string folderName = ConfigurationManager.AppSettings["folderPDF"].ToString();
string path = Server.MapPath("~") + "/Secure/";
string fullPath = path + folderName;
string[] filePaths = Directory.GetFiles(fullPath, "*.pdf");
switch (commandName)
{
case "Open":
string script = "<script language=\"JavaScript\">\n";
script += "window.open ('OpenForm.aspx?path=" + row.Cells[0].Text;
script += "','CustomPopUp', config='height=500,width=1024, toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, directories=no, status=no')\n";
script += "</script>";
this.ClientScript.RegisterStartupScript(this.GetType(), "onload", script);
break;
for the OpenForm.aspx.cs coding :
catch(Exception ex)
{
try
{
string paths = Request.QueryString["path"].ToString();
bool fileExist = File.Exists(paths);
if (fileExist)
{
Response.ContentType = "Application/pdf";
Response.TransmitFile(paths);
}
else
{
Label1.Text = "File Not Exist";
}
}
However, i realize that the problem is from here
string paths = Request.QueryString["path"].ToString();
First things first.
The local system path separator is \ e.g. C:\Windows.
/ is for web e.g. http://stackoverflow.com/questions/9902129/how-to-make-the-path-have/9902194#9902194
For a single \ you have to put \\ (remember escape sequence)
Or
Use String Verbatim
string path = #"C:\Users\KHAIRA\Desktop\heitech\Hibah Total v1.2\Secure\PDF Folder"
Or
Use Path.Combine method of System.IO namespace like
Path.Combine("C:", "Users");
It will give return a string
C:\Users
Try to use something like this:
string path = "C:Users\\KHAIRA\\Desktop\\heitech\\Hibah Total v1.2\\Secure\\PDF Folder";
Try this
String path=#"C:Users/KHAIRA/Desktop/heitech/Hibah Total v1.2/Secure"
String fullpath=path + "\\\" + "PDF Folder"
Fullpath will contain the path you want