1. C#怎麼在文本框中過濾非法字元
把尖括弧替換了不就行了
x.replace("<","")
x.replace(">","")
2. C#判斷文件名中是否有非法字元 / 藍訊
最直接的是用 String.Contains(String) 方法直接判斷路徑字元串中是否包含「/」符。
3. c# 寫個非法字元過濾的方法,並且寫出如何調用,要實例. 感謝
我這有個現在項目正在用的,整體過濾html的,包括script,主要是為了前台展示和截取html文章用的,不知道你能用到不
//截取字元
public static string replacehtml(string Htmlstring)
{
//刪除腳本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//刪除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"(\d+);", "", RegexOptions.IgnoreCase);
//Htmlstring = Htmlstring.Replace("<", "");
//Htmlstring = Htmlstring.Replace(">", "");
Htmlstring = Htmlstring.Replace("“", "");
Htmlstring = Htmlstring.Replace("”", "");
Htmlstring = Htmlstring.Replace("—", "");
Htmlstring = Htmlstring.Replace("…", "");
//Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
4. 如何刪除這個非法字元文件名的文件啊居然安全模式下也殺不了
在刪除某個文件時,系統會給出各種各樣的提示,反正就是死活不讓刪。造成這種情況的原因主要有三種:一是文件正在被系統使用,二是文件名中包含系統無法識別的字元,三是用戶許可權不夠(一般不會有這情況),四是硬碟物理性錯誤(沒有辦法只有格那盤)。
我給你說哈前兩種的方法
一、基本型
1.分步刪除。如果你刪除的是一個文件夾,可以嘗試先將文件夾中的文件刪除,然後再刪除該文件夾。還有一種辦法是在該文件夾下面新建一個文件,再對文件夾執行刪除操作。
2.改名刪除。將不能刪除的文件或文件夾改名後再刪除。
3.結束進程再刪除。當你在刪除文件時,如果系統提示「文件正在使用」,首先檢查一下是否沒有退出與被刪文件相關的程序,再看看系統進程中是否還有相關進程保留。這種情況常常出現在我們卸載軟體後刪除軟體殘留在系統中文件的時候。
4.重啟後再刪除。
5.換個系統再刪除。使用多系統的朋友可以切換到另外一個系統中執行刪除操作,這招比較有效。單系統的朋友則可以在DOS下使用RD(刪除目錄)或delete命令(刪除文件)或者進入到安全模式底下進行刪除操作。
6.結束掉Explorer進程後再刪除。按下Ctrl+Alt+Del鍵打開任務管理器,切換到「進程」選項卡,結束掉Explorer進程,這時候桌面會丟失,不用著急,運行「文件→新任務」,輸入「cmd」後回車打開命令行窗口,進入待刪文件所在目 錄,用RD或delete命令刪除即可。刪除完畢後再次運行「文件→新任務」命令,輸入「explorer」後回車,桌面又回來了。
7.關閉預覽功能再刪除。如果你在資源管理器中使用了視頻、圖片的預覽功能,那麼在刪除此類文件時常常不成功,解決的辦法是關閉該功能:Windows XP用戶在「開始→運行」中輸入「regsvr32 /u shmedia.dll」即可,Windows 2000用戶則在資源管理器中的空白處單擊滑鼠右鍵,選擇「自定義文件夾」選項,會出現自定義文件夾向導,進入到「請選擇模板」窗口後,選擇其中的「簡易」便可以禁止視頻預覽了。
二、移花接木型
1.覆蓋文件再刪除。在硬碟的另外區域新建一個和待刪文件同名的文件,然後剪切並覆蓋待刪文件,最後再刪除該文件。
2.請常用軟體「兼職」刪除。我們可以使用Winrar、FlashFXP、Nero、ACDSee來刪除頑固文件,這種方法往往有奇效。使用方法非常簡單,以FlashFXP為例,只需在本地目錄中瀏覽到待刪文件,對其執行刪除操作即可。
注意:使用Winrar來刪除文件的方法跟其它軟體不同,步驟如下:右鍵單擊待刪除文件或者文件夾,選擇「添加到檔案文件」菜單,在談出窗口中勾選「存檔後刪除源文件」,單擊「確定」,這樣Winrar在創建壓縮文件的同時,也會幫我們刪除頑固的文件,我們只 需要將創建的壓縮文件刪除即可。
3.在別的機器上刪除。如果你處於區域網中,可以嘗試將待刪文件所在的文件夾的屬性設置為共享,並賦予讀寫許可權,然後通過網上鄰居或在所在的區域網內的其它的電腦上打開文件夾,執行刪除操作。另外如果你電腦中安裝了FTP伺服器,我們還可以試試從FTP登錄 本機,然後刪除待刪文件。
4.使用專業刪除軟體。大名鼎鼎的PC Tools這款小軟體可以刪除幾乎所有「頑固」軟體。運行軟體後,先按任意鍵進入軟體的主界面,然後按下F10並切換選中待刪文件,按下D鍵並確認操作即可刪除。
5. c語言保存文件到指定的路徑和文件名
fp=fopen(filename,"wb");
里的filename就表示了文件的路徑及文件名,所以要把輸入的文件名和文件路徑拼接起來,計算出這個filename
最好過濾一下別讓路徑和文件名中有非法字元,比如:\/+<>什麼的。
scanf也限制一下長度。
scanf("%19s",filename);
scanf("%19s",path);
參考如下:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch, filename[20], path[20],buffer[40];
printf("Enter the file name: ");
scanf("%s",filename);
printf("Enter the path: ");
scanf("%s",path);
sprintf(buffer, "%s\\%s", path,filename);
printf("\nto end input ,press Ctrl+Z in newline,then ENTER:\n");
if((fp=fopen(buffer,"wt+"))==NULL)
{
printf("no such path, \nstrike any key exit!");
getch();
exit(1);
}
while ((ch=getchar())!=-1) ch=fputc(ch,fp);
fclose(fp);
printf("==================================\n\n");
printf("file path \"%s\" \nfile name \"%s\":\nand its content:\n",path,filename);
fp=fopen(buffer,"rt");
while ((ch=fgetc(fp))!=-1) putchar(ch);
fclose(fp);
return 0;
6. c++怎樣屏蔽非法字元
試試以下代碼吧(原創),以下代碼支持退格:
#include<conio.h>
#include<stdio.h>
#define H 100
main()
{
int i;
char a[H];
int c;
for(i=0;;)
{
c=getch();//不回顯地接受字元
if('0'<=c&&c<='0'+9){putchar(c);a[i++]=c;}//選擇性地得到字元並回顯
if(c==8&&i>0){i--;putchar(8);putchar(' ');putchar(8);}//退格處理
if(c==13||i==H-1){a[i++]='\0';break;}//字元串結尾處理
}
printf("\n%s\n",a);//輸出字元串
}
7. c語言中非法字元有哪些
首先看定義,用單引號括起來的單個字元,或用雙引號括起來的一串字元即字元常量。
C '&' 是用單引號括起來的單個字元,正確。
A '\xff' B '\65' D'\028' 是用單引號括起來的多個字元,但因它們前面都 有一個轉義符 『\『 ,就不能說它們都不符合定義,都不合法的。
A '\xff' 中 '\x' 組合表示是一個十六進制數 ffH = 10 進制的 255 ,它代表一個不可見字元的ASCII 碼, 合法 。
B '\65' 同理 '\' + 三個十進制數 '\ddd' 表示的是 八進制數。'\65' = '\065' = 10 進制的 53, 是 『F』 的ASCII 碼表示。單 字,合法。
D '\028' 同上表示是八進制數,但八進制數中逢八則進一,是不會出現 8 的,所以格式雖對但數值錯了。不合法。
8. c#判斷文件名中是否有非法字元和去掉文件
public string invalidFileName(string fileName = "", string repStr = "_"){
// 例如: fileName = "文件/名稱"
foreach (char invalidChar in Path.GetInvalidFileNameChars())
{
fileName = fileName.Replace(invalidChar.ToString(), repStr);
}
//結果:文件_名稱
return fileName;
}
{
//剔除路徑字元串中非法的字元
//例如 path = "路徑ds"
foreach (char invalidChar in Path.GetInvalidPathChars())
{
path = path.Replace(invalidChar.ToString(), repStr);
}
//結果:路徑_ds
return path;
}
原文地址:網頁鏈接
9. 求助,C#上傳文件時錯誤:路徑中具有非法字元
1.windows的目錄中允許出現的字元是有限定的,不允許出現的字元可以通過Path..GetInvalidFileNameChars()得到,下面是過濾目錄中非法字元的方法:
stringillegal=""M"\a/ry/h**ad:>>a\/:*?"|li*tt|le||la"mb.?";
stringinvalid=newstring(Path.GetInvalidFileNameChars())+newstring(Path.GetInvalidPathChars());
foreach(charcininvalid)
{
illegal=illegal.Replace(c.ToString(),"");
}
2.也可以使用正則表達式來做替換,如下代碼:
stringillegal=""M"\a/ry/h**ad:>>a\/:*?"|li*tt|le||la"mb.?";
stringregexSearch=newstring(Path.GetInvalidFileNameChars())+newstring(Path.GetInvalidPathChars());
Regexr=newRegex(string.Format("[{0}]",Regex.Escape(regexSearch)));
illegal=r.Replace(illegal,"");