⑴ 读取ftp文件最后一行以后报错,无法访问已释放的对象。 对象名:System.Net.Sockets.NetworkStream
while ((strLine = reader.ReadLine()) != null) //这里报错 读取到最后一的时候会这样是因为当读取流读取到最后一行内容后就关闭了文件了虽然在正常的读取流中会在读取完内容后返回null但再ftp文件的读取中,读取完最后一行后再读取就会抛出这个异常其实用您代码注释的这句//string strfs = reader.ReadToEnd();来读取就可以了如果要分行处理直接用分行符分割一下就可以了
⑵ 电脑上复制和解压有啥区别
首先 复制和解压并没有直接的关系。复制是将一个文件创建另一份数据内容、格式相同的文件(一般同文件夹内不允许出现同名同格式文件),也称作拷贝。而解压呢,是事先把文件(或文件夹)进行压缩得到额压缩包对它进行文件释放(大致就是把压缩包里的文件复制出来),更详细的你可以网络看一下,这里给你大概解释一下。
⑶ VB中如何设置 文件属性
你可以通过 Scripting.FileSystemObject 对象来设置指定文件的属性,它的 File 对象有一个 Attributes 可以由我们修改,测试代码及说明如下:Private Sub Command1_Click() Dim oFileSystem As Object Dim oFile As Object '// 创建FSO对象 Set oFileSystem = CreateObject("Scripting.FileSystemObject") '// 获取你想要改属性的文件 Set oFile = oFileSystem.GetFile("文件名") '// Normal 0 一般文件。未设置属性。 '// ReadOnly 1 只读文件。属性为读/写。 '// Hidden 2 隐藏文件。属性为读/写。 '// System 4 系统文件。属性为读/写。 '// 设置属性(以上列出了所有可更改的属性值) '// 将文件改为:只读+隐藏+系统 oFile.Attributes = 1 + 2 + 4 '// 释放对象 Set oFile = Nothing Set oFileSystem = NothingEnd Sub
⑷ python with open 频繁写入文件导致coach无法释放
程序执行速度太快,以至于读到内容还没有完全写入文件,文件就已经关闭了。使用open()方法一定要保证关闭文件对象,即调用close()方法。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘同时释放资源。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。将这些个文件路径的list,分成若干个,至于分成多少,要看自己cpu核心有多少,比如你的cpu有32核的,理论上就可以加速32倍。
⑸ Python 文件操作
open(filename[,mode,encoding=”编码”]) :第一个参数文件名如果不加路径,默认在该py文件目录下(路径举例: E:/XXX或E:\xxx ),第二个是模式,默认为 'r' ——只读,举例: f = open('E:/abc.txt') ,如果要转编码并写入模式: f = open('E:/abc.txt','w',encoding='utf-8') 1. 模式
2. 方法 (1) close() : 关闭文件,因为文件写入时是写在内存,只有关闭时才写入硬盘,所以写完记得关闭 (2) read(size = -1) :读取文件size个字符,不写默认是-1,此时读取所有内容(换行按来表示,很不好看),并作为字符串返回,一定要注意 读完以后文件指针将会指向末尾 ,所以下一次在用read方法时会发现读取不出内容了,所以这个就要用seek移动指针或者关闭文件重新定义 (3) tell() :返回当前文件指针指向的位置 (4) seek(offset,from) :移动文件指针,代表从from参数开始偏移offset个字节,0代表起始位置,1代表当前位置,2代表文件末尾 (5) readline() :按序列读取一行内容,默认为边界 (6) write() :写入内容,但必须要有写入权限才行,否则报错,写完会返回写入的长度,例如: len1 = f.write('abc') ,此时len1就为3 (7) truncate() :删除内容,把当前指针以后的内容全删了,举例:
注: 1.文件还可以转化为 list 之类的,例如: list1 = list(f) ,此时文件内容的按被隔开,然后可以用for语句读取文件所有内容,举例:
2.上面输出文件内容方法相对低效,所以一般都直接用for输出整个文件,举例:
通过 fileno 函数,我们可以查看一个文件对应的文件描述符,对应的是程序中打开的文件序号,举例:
可以看出python在启动时会先启动标准流的文件(文件描述符分别为:0/1/2),所以之后打开的文件就从3开始递增,当释放一个文件资源时,该描述符序号被释放,之后打开的文件可以继续使用该序号的文件描述符
python中的 print 的本质是通过 sys.stdout 来进行内容输出,而 sys.stdout 的本质是一个”文件”,相当于我们所有的输入输出的本质都是在对 sys.stdin / sys.stdout / sys.stderr 这些文件来进行读写操作,举例:
open 函数不仅可以打开本地文件,也可以打开文件描述符,而该参数默认为 True ,代表 close 后会将对应的文件资源释放,而对于一些文件描述符,我们只是希望 close 时将打开文件描述符的对象释放,而不释放对应的文件资源,那么则可以设置 closefd=False ,举例:
需要使用到 chardet 模块,按二进制可读打开文件,然后通过 detect() 方法查看,举例:
所以就可以根据文件来设置编码了:
有时候使用文件的编码解码也可能会出现无法解析的情况,例如两种编码混在同一个文件里的时候,此时可以设置 errors 参数为 ignore 来避免该问题,示例:
可用 os 模块下的 chmod() 函数,具体参考: http://www.runoob.com/python/os-chmod.html
使用 os 模块下的 remove() 函数可以实现删除文件,举例:
可以使用自带的 zipfile 模块来进行操作,举例:
可以使用自带的 tarfile 模块来进行操作,举例:
https://www.cnblogs.com/lotusto/p/5805543.html
⑹ vb.net如何释放资源到指定的目录
释放文件可以使用 Resources对象 和 IO对象
下面以文件在资源中类型为 array 的实例代码
注意引用 imports system.io
DimresourcesAsSystem.Resources.ResourceManager=My.Resources.ResourceManagerDimb()AsByte=resources.GetObject("文件在资源中的名称")DimsAsIO.Stream=File.Create(Filepath)'要保存的路径s.Write(b,0,b.Length)s.Close()
⑺ 设计一个程序,用VB打开word文档,并对其进行修改保存
首先你要在VB的“工程”->“引用”中引用“Microsoft Word 9.0 Object LibraryPrivate Sub Command1_Click()'打开指定的文件Dim wdApp As Word.ApplicationDim aDoc As DocumentSet wdApp = New Word.ApplicationSet aDoc = wdApp.Documents.Open(FileName:="你要打开的Word文件路径及文件名")wdApp.Visible = True'设置Word对象可见End Sub不过你要关闭word文件时要释放对象aDoc.Close'关闭文件wdApp.Quit'退出Word程序Set aDoc = Nothing'释放对象Set wdApp = Nothing你可以再放一个按钮,将上面代码放进去,用这个按钮来关闭Word并释放对象。如果你直接在Word程序中关闭文件的话,就将word对象定义在一个类模块中Public WithEvents wdApp As Word.Application,再在wdApp_Quit()事件中加入释放对象的代码。如果关闭word文件而没有释放对象的话,你只有重新运行刚才用来打开word文件的程序才能再次打开word文件。
⑻ java客户端接受文件后文件还被线程占用
客户端这边的output对象要关闭,然后清空缓存区域out.flush();out.close();你要注意是不是在客户端监听那个方法里面没有释放文件输入流对象。所以才一直占用。我觉得出现你这样的问题是因为你socket传输规则有问题。没有提示程序是否接收完毕,所以客户端会一直卡在read方法那里。接收回来的文件对象也没有释放,建议socket传输规则 [文件长度|文件内容] 就是说先接收前面4(你自己定义的)个字节获取整个流的长度。然后在接着读流,这个长度读完了,说明文件接收完。就跳出循环结束接收数据。
⑼ 如何把AI文件对象放到图层1外
把AI的文件对象放在图层一之外的话,那你就需要另外建一个图层了,然后把这个AI的这个文件拖到那个另另外的图层上面去之后,然后他们就不能够合在一起使用了。
⑽ C# 自定义类 dispose 释放类对象
C#不用主动调用回收,运行时会帮你干这个事儿。
运行时回收内存的标准是“没有任何引用”
dispose释放对象的话,一般用于关闭一些带状态的连接、做一些构造对应的结束动作,并且“清除引用”
如果要主动调用内存回收,请查GC类库。或者直接调用GC.Collect()。它会在你调用的时候执行内存回收。也就是“回收[没有任何引用]的变量所对应的内存”。